예제 #1
0
        public async Task <IActionResult> ApplyCoupon([FromBody] ApplyCouponForm model)
        {
            var currentUser = await _workContext.GetCurrentUser();

            var cart = await _cartService.GetActiveCart(currentUser.Id);

            if (cart == null)
            {
                return(NotFound());
            }

            if (cart.LockedOnCheckout)
            {
                return(CreateCartLockedResult());
            }

            var validationResult = await _cartService.ApplyCoupon(cart.Id, model.CouponCode);

            if (validationResult.Succeeded)
            {
                var cartVm = await _cartService.GetActiveCartDetails(currentUser.Id);

                return(Json(cartVm));
            }

            return(Json(validationResult));
        }
예제 #2
0
        public async Task <ActionResult> ApplyCoupon([FromBody] ApplyCouponForm model)
        {
            var currentUser = await _workContext.GetCurrentUser();

            var validationResult = await _cartService.ApplyCoupon(currentUser.Id, model.CouponCode);

            if (validationResult.Succeeded)
            {
                var cart = await _cartService.GetCart(currentUser.Id);

                return(Json(cart));
            }

            return(Json(validationResult));
        }
예제 #3
0
        public async Task <ActionResult> ApplyCoupon(long cartId, [FromBody] ApplyCouponForm model)
        {
            var currentUser = await _workContext.GetCurrentUser();

            var cart = await _cartService.Query().FirstOrDefaultAsync(x => x.Id == cartId && x.CreatedById == currentUser.Id);

            if (cart == null)
            {
                return(NotFound());
            }

            var validationResult = await _cartService.ApplyCoupon(cart.Id, model.CouponCode);

            if (validationResult.Succeeded)
            {
                var cartVm = await _cartService.GetActiveCartDetails(currentUser.Id);

                return(Json(cartVm));
            }

            return(Json(validationResult));
        }