public async Task <IActionResult> AddItem(CreateBasketItemsDTO item, long userId) { var dto = await service.AddItem(item, userId); if (dto != null) { return(Ok(dto)); } else { return(BadRequest()); } }
public static BasketItems Convert(CreateBasketItemsDTO basketItems) { if (basketItems == null) { throw new ArgumentNullException(nameof(basketItems)); } return(new BasketItems { ProductId = basketItems.ProductId, Quantity = basketItems.Quantity, BasketId = basketItems.BasketId }); }
public async Task <BasketDTO> AddItem(CreateBasketItemsDTO dto, long userId) { if (dto == null) { return(null); } var basket = await GetBasketByUserId(userId); basket.BasketItems = basket.BasketItems ?? new List <BasketItemsDTO>(); var _item = basket.BasketItems.SingleOrDefault(x => x.ProductId == dto.ProductId); if (_item != null) { var product = await productService.Get(_item.ProductId); if (_item != null && product.Quantity >= dto.Quantity + _item.Quantity) { _item.Quantity += dto.Quantity; } await unitOfWork.Repository <BasketItems>().Update(BasketItemsConverter.Convert(_item)); } else { var item = BasketItemsConverter.Convert(dto); var productDto = await productService.Get(item.ProductId); if (dto.Quantity <= productDto.Quantity) { item = await unitOfWork.Repository <BasketItems>().Add(item); basket.BasketItems.Add(BasketItemsConverter.Convert(dto, item.Id)); } } return(basket); }