Пример #1
0
        public void CreateBasketItem(BasketItemCreate item, int dishId, int userId)
        {
            using (UnitOfWork unitOfWork = _unitOfWorkFactory.Create())
            {
                BasketItem basketItem = new BasketItem();
                Dish       dish       = unitOfWork.Dishes.GetById(dishId);

                basketItem.ClientId = userId;
                basketItem.DishId   = dishId;

                List <BasketItem> basketItems = unitOfWork.Basket.GetAllByUserId(userId).ToList();

                if (basketItems.Where(b => b.DishId == dishId).Any())
                {
                    basketItem              = basketItems.FirstOrDefault(b => b.DishId == dishId);
                    basketItem.DishesCount += item.Count;
                    basketItem.TotalCost   += dish.Price * item.Count;
                    unitOfWork.Basket.Update(basketItem);
                }
                else
                {
                    basketItem.DishesCount = item.Count;
                    basketItem.TotalCost   = dish.Price * item.Count;
                    unitOfWork.Basket.Create(basketItem);
                }
            }
        }
Пример #2
0
 public BasketItemCreate GetBasketItemCreateModel(int dishId)
 {
     using (UnitOfWork unitOfWork = _unitOfWorkFactory.Create())
     {
         BasketItemCreate basketItem = new BasketItemCreate();
         Dish             dish       = unitOfWork.Dishes.GetById(dishId);
         basketItem.Dish = Mapper.Map <DishModel>(dish);
         return(basketItem);
     }
 }
Пример #3
0
 public IActionResult Create(int?dishId)
 {
     try
     {
         BasketItemCreate basketItem = _basketServices.GetBasketItemCreateModel(dishId.Value);
         return(View(basketItem));
     }
     catch (Exception ex)
     {
         return(StatusCode(500, ex.Message));
     }
 }
Пример #4
0
        public async Task DeleteAsync(int productId, User user)
        {
            List <BasketItemCreate> basketItemCreates =
                JsonConvert.DeserializeObject <List <BasketItemCreate> >(user.Basket);

            BasketItemCreate basketItemCreate = basketItemCreates.FirstOrDefault(p => p.ProductId == productId);

            basketItemCreates.Remove(basketItemCreate);

            user.Basket = JsonConvert.SerializeObject(basketItemCreates);
            await _userManager.UpdateAsync(user);
        }
Пример #5
0
        public async Task <IActionResult> CreateBasketItem(BasketItemCreate item, int?dishId)
        {
            try
            {
                User user = await _userManager.GetUserAsync(User);

                _basketServices.CreateBasketItem(item, dishId.Value, user.Id);
                return(RedirectToAction("Index"));
            }
            catch (Exception ex)
            {
                return(StatusCode(500, ex.Message));
            }
        }
Пример #6
0
        private List <BasketItemCreate> UpdateBasket(int productId, string basket)
        {
            try
            {
                List <BasketItemCreate> basketItems =
                    JsonConvert.DeserializeObject <List <BasketItemCreate> >(basket);

                BasketItemCreate existingItem = basketItems.FirstOrDefault(p => p.ProductId == productId);
                if (existingItem == null)
                {
                    basketItems.Add(new BasketItemCreate(productId, 1));
                }
                else
                {
                    existingItem.Count++;
                }
                return(basketItems);
            }
            catch (Exception)
            {
                return(CreateBasket(productId));
            }
        }