예제 #1
0
        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);
                }
            }
        }
예제 #2
0
        public ECommerceDomain.Inventory.Inventory.Inventory Get()
        {
            var items = GetAllInventoryItemDTOs();

            var inventoryItems = ConvertToInventoryItems(items);

            var inventory = new ECommerceDomain.Inventory.Inventory.Inventory(inventoryItems);

            return(inventory);
        }
예제 #3
0
        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);
            }
        }
예제 #4
0
        public void Save(ECommerceDomain.Inventory.Inventory.Inventory inventory)
        {
            RemoveDeletedItems(inventory);

            AddOrUpdateItems(inventory);
        }