public async Task <IActionResult> Put(Guid id, [FromBody] PurchaseOrderForEditDto dto) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != dto.ID) { return(BadRequest()); } PurchaseOrder order = _context.PurchaseOrders.Find(dto.ID); if (order == null) { return(BadRequest()); } _context.Entry(order).CurrentValues.SetValues(dto); var items = new List <PurchaseOrderItem>(); foreach (var item in dto.Items) { items.Add(new PurchaseOrderItem { ID = item.ID, Price = item.Price, Quantity = item.Quantity, Amount = item.Price * item.Quantity, ProductSkuInfo = new Domain.ProductMgr.ProductSkuInfo { SkuID = item.SKUID } }); } order.UpdateItem(items); try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!PurchaseOrderExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
public async Task <IActionResult> Post([FromBody] PurchaseOrderForEditDto dto) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } PurchaseOrder order = PurchaseOrder.Create(dto.SupplierID, dto.Creater); _context.PurchaseOrders.Add(order); await _context.SaveChangesAsync(); return(Ok(order)); }
// GET: api/PurchaseOrders/5 public async Task <ActionResult> Get(Guid id) { PurchaseOrder purchaseOrder = await _context.PurchaseOrders.FindAsync(id); if (purchaseOrder == null) { return(NotFound()); } PurchaseOrderForEditDto purchaseOrderEditModel = new PurchaseOrderForEditDto { ID = purchaseOrder.ID, Supplier = purchaseOrder.Supplier.Name, Items = purchaseOrder.Items.Select(p => new PurchaseOrderItemForEditDto { ID = p.ID, SKUID = p.ProductSkuInfo.SkuID, Price = p.Price, Amount = p.Amount, Quantity = p.Quantity }) }; return(Ok(purchaseOrderEditModel)); }