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); } } }
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); } }
public IActionResult Create(int?dishId) { try { BasketItemCreate basketItem = _basketServices.GetBasketItemCreateModel(dishId.Value); return(View(basketItem)); } catch (Exception ex) { return(StatusCode(500, ex.Message)); } }
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); }
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)); } }
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)); } }