Example #1
0
        public async Task <BasketDTO> Delete(BasketItemsDTO item, long userId)
        {
            var basket = await GetBasketByUserId(userId);///??

            if (basket == null)
            {
                return(null);
            }

            if (!basket.BasketItems.Any())
            {
                return(basket);
            }

            basket.BasketItems.Remove(item);
            var result = unitOfWork.Repository <BasketItems>().Delete(BasketItemsConverter.Convert(item));

            if (!result)
            {
                return(null);
            }
            await unitOfWork.SaveChangesAsync();

            return(basket);
        }
Example #2
0
        public async Task <BasketDTO> DeleteAllItems(long userId)
        {
            var basket = await GetBasketByUserId(userId);///??

            if (basket == null || !basket.BasketItems.Any())
            {
                return(null);
            }

            basket.BasketItems.Clear();
            var result = unitOfWork.Repository <BasketItems>().Delete(BasketItemsConverter.Convert(basket.BasketItems));

            if (!result)
            {
                return(null);
            }

            return(basket);
        }
Example #3
0
        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);
        }