public IActionResult QuickEdit(int orderId)
        {
            var order = _orderRepository.GetById(orderId);
            var model = _mapper.Map <OrderViewModel>(order);

            foreach (var item in model.OrderDetails)
            {
                var drink = _drinkRepository.GetDrinkById(item.DrinkId);

                var allDrinkSizes = drink.DrinkSizes.Where(ds => ds.IsActive).OrderBy(dz => dz.Price);
                var drinkMaxSize  = allDrinkSizes.LastOrDefault();
                var drinkMinSize  = allDrinkSizes.FirstOrDefault();

                item.CategoryId        = drink.CategoryId;
                item.DrinkMaxSize      = drinkMaxSize.Name;
                item.DrinkMaxSizeId    = drinkMaxSize.Id;
                item.DrinkMaxSizePrice = drinkMaxSize.Price;
                item.DrinkMinSize      = drinkMinSize.Name;
                item.DrinkMinSizeId    = drinkMinSize.Id;
                item.DrinkMinSizePrice = drinkMinSize.Price;
            }

            ViewBag.OrderSourceTypes = _orderSourceTypeRepository.OrderSourceTypes.ToList();
            ViewBag.DeliveryPartners = _deliveryPartnerRepository.DeliveryPartners.ToList();
            return(View(model));
        }
Exemplo n.º 2
0
        public IActionResult UpdateDrink([FromRoute] Guid id, [FromBody] DrinkDTOForUpdate drinkDTOForUpdate)
        {
            if (!_drinkRepository.HasDrink(id))
            {
                return(NotFound($"Drink {id} not found."));
            }
            var drinkFromRepo = _drinkRepository.GetDrinkById(id);

            _mapper.Map(drinkDTOForUpdate, drinkFromRepo);
            _drinkRepository.Save();
            var drinkToReturn = _mapper.Map <DrinkDTO>(drinkFromRepo);

            return(Ok(drinkToReturn));
        }
Exemplo n.º 3
0
        public IActionResult DrinkOptions(int index, int drinkId, int sizeId)
        {
            var drink = _drinkRepository.GetDrinkById(drinkId);

            ViewBag.Index            = index;
            ViewBag.Toppings         = _toppingRepository.GetToppingByDrinkId(drink.Id);
            ViewBag.Size             = drink.DrinkSizes.FirstOrDefault(dz => dz.Id == sizeId);
            ViewBag.SizeId           = sizeId;
            ViewBag.Quantity         = 1;
            ViewBag.SelectedToppings = new List <OrderDetailTopping>();
            ViewBag.IceOptions       = drink.IceOptions.Where(io => io.IsShowOrder).OrderBy(io => io.Order).ToList();
            ViewBag.SugarOptions     = drink.SugarOptions.Where(io => io.IsShowOrder).OrderBy(io => io.Order).ToList();
            ViewBag.DrinkSizes       = drink.DrinkSizes.Where(io => io.IsShowOrder).OrderBy(io => io.Order).ToList();
            return(PartialView(drink));
        }
        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 async Task <IActionResult> DrinkDetails(string id)
        {
            var drink = await _drinkRepository.GetDrinkById(id);

            Task.Run(() =>
                     _apiService.CreateUserActivity(PerformedAction.VisitedDrink, this.User.Identity.Name, drinkId: id, drinkName: drink.Name));
            if (drink == null)
            {
                // add error View
            }

            var model = new DrinkDetailsViewModel
            {
                Drink         = drink,
                IsFavourite   = _favouriteRepository.IsFavourite(_userManager.GetUserId(User), drink?.DrinkId),
                CanUserReview = _reviewRepository.CanUserReviewDrink(_userManager.GetUserId(User), drink?.DrinkId)
            };

            return(View(model));
        }
Exemplo n.º 6
0
        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));
        }
Exemplo n.º 7
0
        public IActionResult Sort(int[] ids, int catId, string activetab = "")
        {
            for (int i = 0; i < ids.Length; i++)
            {
                var drink = _drinkRepository.GetDrinkById(ids[i]);
                if (catId != -1)
                {
                    drink.Position = i;
                }
                else
                {
                    drink.NewOrderSort = i;
                }
                _drinkRepository.UpdateDrink(drink);
            }

            return(new RedirectResult(Url.Action("Edit", "DrinkCategories", new { id = catId }) + activetab));
        }
        public ViewResult Details(int DrinkId)
        {
            var Details = _drinkRepository.GetDrinkById(DrinkId);

            return(View(Details));
        }
Exemplo n.º 9
0
 public async Task <Drink> GetDrinkById(int id)
 {
     return(await drinkRepository.GetDrinkById(id));
 }