public async Task <IActionResult> Create([FromBody] StockEntryInputModel model) { var entry = mapper.Map <StockEntry>(model); entry.Date = DateTime.UtcNow; this.ctx.Add(entry); UpdateProductStock(model); if (await this.ctx.SaveChangesAsync() > 0) { var url = Url.Link("StockEntryGet", new { id = entry.Id }); return(Created(url, mapper.Map <StockEntryModel>(entry))); } return(BadRequest()); }
private void UpdateProductStock(StockEntryInputModel stockEntry) { var product = ctx.Products.Find(stockEntry.ProductId); switch (stockEntry.StockEntryType) { case StockEntryType.Buy: case StockEntryType.Increase: product.CurrentStock += stockEntry.Units; product.CurrentCost += stockEntry.Amount; break; case StockEntryType.Sell: case StockEntryType.Decrease: product.CurrentStock -= stockEntry.Units; product.CurrentCost -= stockEntry.Amount; break; default: throw new Exception("Unknown stock entry type"); } }