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); }
public StoreItemDTO FindById(int id) { var storeItem = storeItemRepository.FindById(id); StoreItemDTO storeItemDTO = new StoreItemDTO(); return(storeItemDTO); }
public void Delete(StoreItemDTO entity) { var storeItem = storeItemRepository.FindById(entity.StoreItemID); storeItem.IsDeleted = true; storeItemRepository.Delete(storeItem); }
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); }