public async Task <Delivery> AddAsync(Delivery item) { var warehouseItem = await _dbContext.WarehouseInventoryItems .FirstOrDefaultAsync(m => m.InventoryItemId == item.InventoryItemId && m.WarehouseId == item.WarehouseId); if (warehouseItem != null) { warehouseItem.ItemCount += item.NumberOfItemDelivered; warehouseItem.LastUpdated = DateTime.Now; } else { warehouseItem = new WarehouseInventoryItem() { InventoryItemId = item.InventoryItemId, ItemCount = item.NumberOfItemDelivered, WarehouseId = item.WarehouseId, LastUpdated = DateTime.Now }; _dbContext.WarehouseInventoryItems.Add(warehouseItem); } await _dbContext.Deliveries.AddAsync(item); await _dbContext.SaveChangesAsync(); return(item); }
public async Task <string> AddAsync(Removal item) { var warehouseItem = await _dbContext.WarehouseInventoryItems .FirstOrDefaultAsync(m => m.InventoryItemId == item.InventoryItemId && m.WarehouseId == item.WarehouseId); if (warehouseItem != null) { if (warehouseItem.ItemCount >= item.NumberOfItemRemoved) { warehouseItem.ItemCount -= item.NumberOfItemRemoved; warehouseItem.LastUpdated = DateTime.Now; } else { return($"Error: Not enough items in stock. Total in stock - {warehouseItem.ItemCount}"); } } else { warehouseItem = new WarehouseInventoryItem() { InventoryItemId = item.InventoryItemId, ItemCount = 0, WarehouseId = item.WarehouseId, LastUpdated = DateTime.Now }; return($"Error: Not enough items in stock. Total in stock - {warehouseItem.ItemCount}"); } await _dbContext.Removals.AddAsync(item); await _dbContext.SaveChangesAsync(); return("Removal recorded successfully."); }