Ejemplo n.º 1
0
        public StoreItemDTO Save(StoreItemDTO entity)
        {
            if (entity != null)
            {
                if (entity.StoreItemID <= 0)
                {
                    storeItemRepository.Add(new StoreItem
                    {
                        StoreItemID = entity.StoreItemID,
                        ItemName    = entity.ItemName,
                        ItemCost    = entity.ItemCost,
                        IsDeleted   = false,
                        CreatedDate = DateTime.Now
                    });
                }
                else
                {
                    var storeItem = storeItemRepository.FindById(entity.StoreItemID);
                    storeItem.ItemName  = entity.ItemName;
                    storeItem.ItemCost  = entity.ItemCost;
                    storeItem.IsDeleted = entity.IsDeleted;

                    storeItemRepository.Update(storeItem);
                }
            }
            return(entity);
        }
Ejemplo n.º 2
0
        public StoreItemDTO FindById(int id)
        {
            var          storeItem    = storeItemRepository.FindById(id);
            StoreItemDTO storeItemDTO = new StoreItemDTO();

            return(storeItemDTO);
        }
Ejemplo n.º 3
0
        public void Delete(StoreItemDTO entity)
        {
            var storeItem = storeItemRepository.FindById(entity.StoreItemID);

            storeItem.IsDeleted = true;

            storeItemRepository.Delete(storeItem);
        }
Ejemplo n.º 4
0
        private double FindPrice(StoreItemDTO item)
        {
            var price = item.Price;
            var itemsCurrentlyInCart = _itemsScanned.Count(x => x.Name == item.Name) + 1;
            var sale = _sales.FirstOrDefault(x => x.Name == item.Name);

            if (sale == null)
            {
                return(price * item.Amount);
            }

            var salePrice = 0.0;

            if (itemsCurrentlyInCart % sale.AmountNeeded == 0 && (sale.Limit == 0 || sale.Limit <= itemsCurrentlyInCart))
            {
                salePrice = sale.Price;
            }

            if (sale.PriceType == PriceTypeEnum.Percent)
            {
                salePrice = price * salePrice;
            }

            var expectedPrice = (price - salePrice) * item.Amount;

            if (sale.PreReq != null)
            {
                var preReqPrice = _itemsScanned.Where(x => x.Name == sale.PreReq).Sum(x => x.Price * x.Amount);
                if (preReqPrice < expectedPrice)
                {
                    return(price * item.Amount);
                }
            }

            return(expectedPrice);
        }