public async Task <IActionResult> UpdateStock([FromRoute] Guid id, [FromBody] WareHouseStockUpdate wareHouseStock) { var products = await _context.Products.FindAsync(id); var warehouseProds = new WareHouseProducts(); if (wareHouseStock.wareHouseId != 0 && wareHouseStock.wareHouseId != null) { warehouseProds = _context.WareHouseProducts.Where(x => x.productId.Equals(id.ToString()) && x.wareHouseId.Equals(wareHouseStock.wareHouseId)).FirstOrDefault(); if (warehouseProds == null) { CreateFieldForWareHouseProduct(id); } if (wareHouseStock.change == "+") { warehouseProds.quantity += wareHouseStock.quantity; } else { warehouseProds.quantity -= wareHouseStock.quantity; } _context.Entry(warehouseProds).State = EntityState.Modified; var wareHouseAllStock = _context.WareHouseProducts.Where(x => x.productId.Equals(id.ToString())).ToList(); products.quantity = wareHouseAllStock.Sum(s => s.quantity); _context.Entry(products).State = EntityState.Modified; } else { if (wareHouseStock.change == "+") { products.quantity += wareHouseStock.quantity; } else { products.quantity -= wareHouseStock.quantity; } products.modifiedOn = DateTime.Now; products.modifiedBy = wareHouseStock.modifiedBy; products.userId = wareHouseStock.userId; _context.Entry(products).State = EntityState.Modified; } try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!ProductsExists(id)) { return(NotFound()); } else { throw; } } return(CreatedAtAction("GetProducts", GetProducts())); }
public async Task <IActionResult> PutWareHouseProducts([FromRoute] int id, [FromBody] WareHouseProducts wareHouseProducts) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != wareHouseProducts.Id) { return(BadRequest()); } _context.Entry(wareHouseProducts).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!WareHouseProductsExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
public async Task <IActionResult> PostWareHouseProducts([FromBody] WareHouseProducts wareHouseProducts) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } _context.WareHouseProducts.Add(wareHouseProducts); await _context.SaveChangesAsync(); return(CreatedAtAction("GetWareHouseProducts", new { id = wareHouseProducts.Id }, wareHouseProducts)); }
private async void CreateFieldForWareHouseProduct(Guid productId) { var warehouses = _context.WareHouse.ToList(); foreach (var item in warehouses) { var tempWhProds = new WareHouseProducts() { productId = productId.ToString(), quantity = 0, wareHouseId = item.WareHouseId }; _context.WareHouseProducts.Add(tempWhProds); await _context.SaveChangesAsync(); } }