Example #1
0
        public async Task <ActionResult <CartItem> > UpdateCart([FromBody] CartItem cartItem)
        {
            var userId = HttpContext.User.Identity.Name;

            cartItem.UserId = userId;
            var result = await _cartItemService.Update(cartItem);

            return(Ok(result));
        }
Example #2
0
        public IActionResult Update(CartItem cartItem)
        {
            var result = _cartItemService.Update(cartItem);

            if (result.Success)
            {
                return(Ok(result));
            }
            return(BadRequest(result));
        }
Example #3
0
        public IActionResult Patch(int id, [FromBody] CartItemDto cartItemDto)
        {
            var cartItem = _mapper.Map <CartItem>(cartItemDto);

            cartItem.Id = id;
            var updatedCartItem    = _cartItemService.Update(cartItem);
            var updatedCartItemDto = _mapper.Map <CartItemDto>(updatedCartItem);

            return(StatusCode((int)HttpStatusCode.Accepted, updatedCartItemDto));
        }
Example #4
0
        public async Task <IActionResult> Update(Guid id, [FromBody] UpdateCartRequest request)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState.GetErrorMessages()));
            }
            try
            {
                var response = await _cartItemService.Update(id, request);

                return(Ok(response));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }
Example #5
0
 public void UpdateCart(int userId, CartItem item, Transaction transaction = null)
 {
     _cartItemService.Update(item, transaction);
 }
Example #6
0
        public DiscountApplicationStatus ApplyDiscountCoupon(DiscountCoupon discountCoupon, Cart cart)
        {
            if (!CanApplyDiscount(discountCoupon, cart.UserId, out var status))
            {
                return(status);
            }

            //is there a min. total required
            if (discountCoupon.MinimumOrderSubTotal > 0 && discountCoupon.MinimumOrderSubTotal > GetOrderSubTotal(cart))
            {
                return(DiscountApplicationStatus.NotEligibleForCart);
            }


            var cartItemUpdated = false;
            var cartUpdated     = false;

            //check for restriction type
            switch (discountCoupon.RestrictionType)
            {
            case RestrictionType.Products:
                cartItemUpdated = ApplyProductDiscount(discountCoupon, cart);
                break;

            case RestrictionType.Categories:
                cartItemUpdated = ApplyCategoryDiscount(discountCoupon, cart);
                break;

            case RestrictionType.Users:
                cartItemUpdated = ApplyUserDiscount(discountCoupon, cart);
                break;

            case RestrictionType.UserGroups:
                cartItemUpdated = ApplyUserGroupDiscount(discountCoupon, cart);
                break;

            case RestrictionType.Roles:
                cartItemUpdated = ApplyRoleDiscount(discountCoupon, cart);
                break;

            case RestrictionType.Vendors:
                cartItemUpdated = ApplyVendorDiscount(discountCoupon, cart);
                break;

            case RestrictionType.Manufacturers:
                cartItemUpdated = ApplyManufacturerDiscount(discountCoupon, cart);
                break;

            case RestrictionType.PaymentMethods:
                cartUpdated = ApplyPaymentMethodDiscount(discountCoupon, cart);
                break;

            case RestrictionType.ShippingMethods:
                cartUpdated = ApplyShippingMethodDiscount(discountCoupon, cart);
                break;

            case RestrictionType.OrderTotal:
                cartUpdated = ApplyOrderTotalDiscount(discountCoupon, cart);
                break;

            case RestrictionType.OrderSubTotal:
                cartUpdated = ApplyOrderSubTotalDiscount(discountCoupon, cart);
                break;

            case RestrictionType.ShippingFee:
                cartUpdated = ApplyShippingDiscount(discountCoupon, cart);
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }

            if (cartUpdated || cartItemUpdated)
            {
                cart.DiscountCouponId = discountCoupon.Id;
                _cartService.Update(cart);
                if (cartUpdated)
                {
                    return(DiscountApplicationStatus.Success);
                }
            }
            if (cartItemUpdated)
            {
                foreach (var cartItem in cart.CartItems)
                {
                    _cartItemService.Update(cartItem);
                }

                return(DiscountApplicationStatus.Success);
            }
            return(DiscountApplicationStatus.NotEligibleForCart);
        }