private void AddOrUpdateItems(ECommerceDomain.Inventory.Inventory.Inventory inventory) { var itemsDTOs = GetAllInventoryItemDTOs(); foreach (var item in inventory.Items) { if (itemsDTOs.Any(i => i.Product.SKU == item.SKU)) { //update var itemDTO = itemsDTOs.First(i => i.Product.SKU == item.SKU); itemDTO.Description = item.Description; itemDTO.Category = item.Category; itemDTO.UnitCost = item.UnitCost; AddNewEntries(item); } else { var product = _eCommerceContext.Products.Include(p => p.ProductCategory).First(i => i.SKU == item.SKU); //add var storedDTO = new InventoryItemDTO { Id = product.Id, Description = item.Description, Category = product.ProductCategory.Name, Entries = new List <InventoryItemEntryDTO>(), UnitCost = item.UnitCost }; _eCommerceContext.InventoryItems.Add(storedDTO); } } }
public ECommerceDomain.Inventory.Inventory.Inventory Get() { var items = GetAllInventoryItemDTOs(); var inventoryItems = ConvertToInventoryItems(items); var inventory = new ECommerceDomain.Inventory.Inventory.Inventory(inventoryItems); return(inventory); }
private void RemoveDeletedItems(ECommerceDomain.Inventory.Inventory.Inventory inventory) { var itemDTOs = GetAllInventoryItemDTOs(); var items = ConvertToInventoryItems(itemDTOs); var itemsToDelete = items.Except(inventory.Items, new InventoryItemComparer()).ToList(); foreach (var itemToDelete in itemsToDelete) { var dtoToDelete = _eCommerceContext.InventoryItems.First(item => item.Product.SKU == itemToDelete.SKU); _eCommerceContext.InventoryItems.Remove(dtoToDelete); } }
public void Save(ECommerceDomain.Inventory.Inventory.Inventory inventory) { RemoveDeletedItems(inventory); AddOrUpdateItems(inventory); }