Метод My Current (play around) не работает так, как ожидалось.Что мне действительно нужно сделать, это изменить это, чтобы сделать один запрос для группы.Я совершенно в недоумении, как это сделать, кроме как это возможно.
Вот что у меня есть:
editBulkPlan(plans: Update<Plan>[]): Observable<Plan>[] {
this.log("Editing a buncha plans Plan");
let list: Observable<Plan>[] = new Array();
plans.forEach(x => {
list.push(this.editPlan(this.http.patch<Plan>(this.odataUrl + "Plans(" + x.id + ")", x.changes, this.httpPatchOptions)));
});
return list;
//return this.http.patch<Plan[]>(this.odataUrl + "Plans(" + plan.id + ")", plans.changes, this.httpPatchOptions);
}
И контроллер:
public async Task<IHttpActionResult> Patch([FromODataUri] int key, Delta<Plan> plan)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
using (CreateTimedTelemetryTrace())
{
var entity = await DataContext.Plans.FindAsync(key);
if (entity == null)
{
return NotFound();
}
plan.Patch(entity);
var now = DateTime.UtcNow;
entity.UpdatedBy = RequestContext.Principal.Identity.Name;
entity.UpdatedAt = now;
if (entity.TestType_Id == 0)
{
entity.TestType_Id = 1; // Override null/0 with N/A
}
try
{
await DataContext.SaveChangesAsync();
}
catch (DbUpdateException exc)
{
if (!PlanExists(key))
{
return NotFound();
}
TelemetryClient.TrackException(exc);
throw;
}
return Updated(entity);
}
}
Мне нужен только один запрос и соответствующие изменения.