public async Task <RedirectToActionResult> AddItemToCart([FromRoute] int id, [FromRoute] int?number) { var item = await _itemRepository.GetSingleItem(id); if (item == null) { throw new Exception("Item was not found."); } var user = await _userManager.FindByNameAsync(GetUserName()); var cartItemFromDb = await _cartItemRepository.GetCartItem(id, user.Id); if (cartItemFromDb != null) { var newNumber = cartItemFromDb.Number + (number ?? 1); await _cartItemRepository.EditCartItem(cartItemFromDb.Id, newNumber); } else { var cartItem = new Cart_Item { ItemId = id, UserId = user.Id, Number = number ?? 1, Type = "Tipas" }; await _cartItemRepository.Create(cartItem); } return(RedirectToAction("ItemDetails", "Item")); }
public AddItemToCartResponse AddItemToCart(AddItmeToCartRequest addItmeToCartRequest) { AddItemToCartResponse response = new AddItemToCartResponse(); var cart = GetCart(); if (cart != null) { var existingCartItem = _cartItemRepository.FindCartItemsById(cart.Id) .FirstOrDefault(c => c.ProductId == addItmeToCartRequest.ProductId); if (existingCartItem != null) { existingCartItem.Quantity++; _cartItemRepository.EditCartItem(existingCartItem); response.CartItem = _messageMapper.MapToCartItmeDto(existingCartItem); } else { var product = _productRepository.FindProductById(addItmeToCartRequest.ProductId); if (product != null) { var carItem = new CartItem //model { CartId = cart.Id, Cart = cart, ProductId = addItmeToCartRequest.ProductId, product = product, Quantity = 1 }; _cartItemRepository.SaveCartItem(carItem); response.CartItem = _messageMapper.MapToCartItmeDto(carItem); } } } else { var product = _productRepository.FindProductById(addItmeToCartRequest.ProductId); if (product != null) { var newCart = new Cart { UniqueCartId = UniqueCartId(), CartStatus = CartStatus.Open }; _cartRepository.SaveCart(newCart); var cartItem = new CartItem { CartId = newCart.Id, Cart = newCart, product = product, ProductId = addItmeToCartRequest.ProductId, Quantity = 1 }; _cartItemRepository.SaveCartItem(cartItem); response.CartItem = _messageMapper.MapToCartItmeDto(cartItem); } } return(response); }