コード例 #1
0
        public IResult AddByProductId(int productId)
        {
            var product = _productService.GetById(productId);

            if (product == null)
            {
                return(new ErrorResult(Messages.ProductNotFound));
            }
            var basketProduct = _cartDal.Get(x => x.Product.Id == productId);

            if (basketProduct == null)
            {
                _cartDal.Add(new Cart
                {
                    Id       = productId,
                    Quantity = 1
                });
            }
            else
            {
                if (!((basketProduct.Quantity + 1) > product.UnitsInStock))
                {
                    basketProduct.Quantity += 1;
                    _cartDal.Update(basketProduct);
                }
                else
                {
                    return(new ErrorResult(Messages.CartProductNotAddedMore));
                }
            }
            return(new SuccessResult(Messages.CartProductAdded));
        }
コード例 #2
0
        public void Add(CartItem entity)
        {
            var cart = accessDal.Get();

            if (cart == null)
            {
                cart = new Cart();
            }

            cart.Items.Add(entity);
        }
コード例 #3
0
        public Cart GetByCartId(string userId)
        {
            if (string.IsNullOrEmpty(userId))
            {
                throw new ArgumentNullException(nameof(userId));
            }

            return(_cartDal.Get(x => x.UserId == userId));
        }
コード例 #4
0
        public async Task <IResult> Handle(UpdateProductInCartCommand request, CancellationToken cancellationToken)
        {
            var result = await _cartDal.Get(p => p.Id == request._cart.Id);

            if (result == null)
            {
                return(new ErrorResult(Messages.ItemsNotInTheCart));
            }
            await _cartDal.Update(request._cart);

            return(new SuccessResult(Messages.CarUpdateSuccessful));
        }
コード例 #5
0
        public async Task <IResult> Handle(UpdateProductToCartCommand request, CancellationToken cancellationToken)
        {
            var result = await _cartDal.Get(p => p.UserId == request._cartAddRequest.UserId && p.ProductId == request._cartAddRequest.ProductId);

            if (result == null)
            {
                await _cartDal.Add(_mapper.Map <Cart>(request._cartAddRequest));
            }
            else
            {
                result.Quantity += 1;
                await _cartDal.Update(result);
            }
            return(new SuccessResult(Messages.AddToCartSuccessful));
        }
コード例 #6
0
 public ShippingDetail GetAdress(string userId)
 {
     return(_cartDal.Get(c => c.UserId == userId));
 }
コード例 #7
0
 public Cart Get(int id)
 {
     return(_cartDal.Get(x => x.Id == id));
 }
コード例 #8
0
 public Cart GetCart(int id)
 {
     return(_cartDal.Get(c => c.CartId == id));
 }
コード例 #9
0
        public IDataResult <Cart> Get(int id)
        {
            var result = _cartDal.Get(p => p.Id == id);

            return(new SuccessDataResult <Cart>(result));
        }