public async Task <IHttpActionResult> GetDeliveryNote(Guid id) { var deliveryNote = await _db.Deliveries .FirstOrDefaultAsync(g => g.DeliveryGuid == id && g.DeliveryDeleted == false); var deliveryNoteItems = await _db.DeliveryItems .Include(o => o.DeliveryItemOrderItem) .Include(s => s.DeliveryItemOrderItem.OrderItemStockItem) .Include(p => p.DeliveryItemOrderItem.OrderItemStockItem.StockItemProduct) .Where(dn => dn.DeliveryItemDelivery.DeliveryGuid == id) .ToListAsync(); var deliveryNoteViewModel = new DeliveryNoteDetailsViewModel { DeliveryNote = deliveryNote, DeliveryItems = deliveryNoteItems }; if (deliveryNoteItems == null) { return(NotFound()); } return(Ok(deliveryNoteViewModel)); }
public async Task <IHttpActionResult> PutDeliveryNote(DeliveryNoteDetailsViewModel deliveryNoteDetailsVm, Guid id) { if (!ModelState.IsValid) { foreach (var v in ModelState.Values) { foreach (var e in v.Errors) { if (e.Exception != null) { return (BadRequest( "Something went wrong. Please check your form fields for disallowed or missing values.")); } } } return(BadRequest(ModelState)); } if (id != deliveryNoteDetailsVm.DeliveryNote.DeliveryGuid) { return(BadRequest()); } foreach (var d in deliveryNoteDetailsVm.DeliveryItems) { var deliveryItem = await _db.DeliveryItems.FirstOrDefaultAsync(g => g.DeliveryItemGuid == d.DeliveryItemGuid); deliveryItem.DeliveryItemQuantity = d.DeliveryItemQuantity; _db.Entry(deliveryItem).State = EntityState.Modified; } try { await _db.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!DeliveryExists(id)) { return(NotFound()); } throw; } return(StatusCode(HttpStatusCode.NoContent)); }