public IActionResult GetPromotionDrinkItem(PromotionDrinkItemView promotionDrinkViewModel) { var drink = _drinkRepository.GetDrinkById(promotionDrinkViewModel.DrinkId); var drinkSize = drink.DrinkSizes.FirstOrDefault(s => s.Id == promotionDrinkViewModel.DrinkSizeId) ?? drink.PrimarySize; if (drinkSize == null) { throw new ApplicationException("DrinkSize is invalid!"); } Dictionary <int, Topping> toppingDictionary = promotionDrinkViewModel.PromotionDrinkToppings?.Select(t => new KeyValuePair <int, Topping>(t.ToppingId, _toppingRepository.GetToppingById(t.ToppingId))).ToDictionary(k => k.Key, k => k.Value); promotionDrinkViewModel.CategoryId = drink.CategoryId; promotionDrinkViewModel.DrinkName = drink.Name; promotionDrinkViewModel.Price = drinkSize.Price; promotionDrinkViewModel.PromotionDrinkToppings?.ForEach(t => { t.ToppingName = toppingDictionary?[t.ToppingId]?.Name; t.ToppingPrice = toppingDictionary?[t.ToppingId]?.Price; }); promotionDrinkViewModel.FullPrice = drinkSize.Price + (promotionDrinkViewModel.PromotionDrinkToppings?.Sum(t => t.Quantity * t.ToppingPrice) ?? 0); promotionDrinkViewModel.DrinkSize = drinkSize.Name; promotionDrinkViewModel.Amount = promotionDrinkViewModel.FullPrice * promotionDrinkViewModel.Quantity; return(ViewComponent("PromotionDrinkNewItem", new { promotionDrinkViewModel })); }
public IViewComponentResult Invoke(int ppDrinkId, int index) { var promotionDrink = _privatePromotionRepository.GetPrivatePromotionDrinkById(ppDrinkId); var drinkSize = _drinkRepository.GetSizeByDrinkId(promotionDrink.DrinkId); Dictionary <int, Topping> toppingDictionary = promotionDrink.PrivatePromotionDrinkToppings?.Select(t => new KeyValuePair <int, Topping>(t.ToppingId, _toppingRepository.GetToppingById(t.ToppingId))).ToDictionary(k => k.Key, k => k.Value); var promotionDrinkViewModel = new PromotionDrinkItemView { DrinkSize = promotionDrink.DrinkSizeName, DrinkSizeId = promotionDrink.DrinkSizeId, DrinkName = promotionDrink.Drink.Name, Index = index, Id = promotionDrink.Id, PromotionId = promotionDrink.PrivatePromotionId, DrinkId = promotionDrink.DrinkId, Quantity = promotionDrink.Quantity, CategoryId = promotionDrink.Drink.CategoryId, Price = drinkSize.Price, PromotionDrinkToppings = promotionDrink.PrivatePromotionDrinkToppings?.Select(t => new PromotionDrinkToppingView { Id = t.Id, PromotionDrinkId = t.PrivatePromotionDrinkId, Quantity = t.Quantity, ToppingId = t.ToppingId }).ToList() }; promotionDrinkViewModel.PromotionDrinkToppings?.ForEach(t => { t.ToppingName = toppingDictionary?[t.ToppingId]?.Name; t.ToppingPrice = toppingDictionary?[t.ToppingId]?.Price; }); promotionDrinkViewModel.FullPrice = drinkSize.Price + (promotionDrinkViewModel.PromotionDrinkToppings?.Sum(t => t.Quantity * t.ToppingPrice) ?? 0); promotionDrinkViewModel.Amount = promotionDrinkViewModel.FullPrice * promotionDrinkViewModel.Quantity; return(View(promotionDrinkViewModel)); }
public IViewComponentResult Invoke(PromotionDrinkItemView promotionDrinkViewModel) { var drink = _drinkRepository.GetDrinkById(promotionDrinkViewModel.DrinkId); var drinkSize = drink.DrinkSizes.FirstOrDefault(s => s.Id == promotionDrinkViewModel.DrinkSizeId) ?? drink.PrimarySize; if (drinkSize == null) { throw new ApplicationException("DrinkSize is invalid!"); } promotionDrinkViewModel.PromotionDrinkToppings = promotionDrinkViewModel.PromotionDrinkToppings?.ToList(); Dictionary <int, Topping> toppingDictionary = promotionDrinkViewModel.PromotionDrinkToppings?.Select(t => new KeyValuePair <int, Topping>(t.ToppingId, _toppingRepository.GetToppingById(t.ToppingId))).ToDictionary(k => k.Key, k => k.Value); promotionDrinkViewModel.CategoryId = drink.CategoryId; promotionDrinkViewModel.DrinkName = drink.Name; promotionDrinkViewModel.Price = drinkSize.Price; promotionDrinkViewModel.FullPrice = drinkSize.Price + (promotionDrinkViewModel.PromotionDrinkToppings?.Sum(t => t.Quantity * toppingDictionary?[t.ToppingId].Price) ?? 0); promotionDrinkViewModel.DrinkSize = drinkSize.Name; promotionDrinkViewModel.Amount = (drinkSize.Price + (promotionDrinkViewModel.PromotionDrinkToppings?.Sum(t => t.Quantity * toppingDictionary?[t.ToppingId].Price) ?? 0)) * promotionDrinkViewModel.Quantity; return(View(promotionDrinkViewModel)); }