public Task<IHttpActionResult> PatchContact([FromODataUri] Guid id, [FromODataUri] Guid contactId, Delta<Contact> patch, ODataQueryOptions<Contact> options) { if (!ModelState.IsValid) { return Task.FromResult((IHttpActionResult)BadRequest(ModelState)); } var contacts = this.database.Contacts.Where(r => r.Id == contactId && r._SaleHeaderId == id); return PutOrPatchODataAsync(contacts, options, () => { return patch.CreatePatchAsync(this.database, this.database.Contacts, contact => contact._SaleHeaderId = id); }, async () => { return await patch.UpdatePatchAsync(await contacts.FirstAsync(), this.database, this.database.Contacts); }); }
public Task<IHttpActionResult> PatchTransaction([FromODataUri] Guid id, [FromODataUri] Guid itemId, Delta<SaleLineItem> patch, ODataQueryOptions<SaleLineItem> options) { if (!ModelState.IsValid) { return Task.FromResult((IHttpActionResult)BadRequest(ModelState)); } var items = this.database.SaleLineItems.Where(r => r.Id == itemId && r._SaleHeaderId == id); return PutOrPatchODataAsync(items, options, () => { return patch.CreatePatchAsync(this.database, this.database.SaleLineItems, item => item._SaleHeaderId = id); }, async () => { return await patch.UpdatePatchAsync(await items.FirstAsync(), this.database, this.database.SaleLineItems); }); }