public async Task <IActionResult> Post([FromBody] CartRuleForm model)
        {
            if (ModelState.IsValid)
            {
                var cartRule = new CartRule
                {
                    Name                  = model.Name,
                    Description           = model.Description,
                    IsActive              = model.IsActive,
                    StartOn               = model.StartOn,
                    EndOn                 = model.EndOn,
                    IsCouponRequired      = model.IsCouponRequired,
                    RuleToApply           = model.RuleToApply,
                    DiscountAmount        = model.DiscountAmount,
                    DiscountStep          = model.DiscountStep,
                    MaxDiscountAmount     = model.MaxDiscountAmount,
                    UsageLimitPerCoupon   = model.UsageLimitPerCoupon,
                    UsageLimitPerCustomer = model.UsageLimitPerCustomer
                };

                if (model.IsCouponRequired && !string.IsNullOrWhiteSpace(model.CouponCode))
                {
                    var coupon = new Coupon
                    {
                        CartRule = cartRule,
                        Code     = model.CouponCode
                    };

                    cartRule.Coupons.Add(coupon);
                }

                foreach (var item in model.Products)
                {
                    var cartRuleProduct = new CartRuleProduct
                    {
                        CartRule  = cartRule,
                        ProductId = item.Id
                    };
                    cartRule.Products.Add(cartRuleProduct);
                }

                _cartRuleRepository.Add(cartRule);
                await _cartRuleRepository.SaveChangesAsync();

                return(CreatedAtAction(nameof(Get), new { id = cartRule.Id }, null));
            }
            return(BadRequest(ModelState));
        }
        public IActionResult Post([FromBody] CartRuleForm model)
        {
            if (ModelState.IsValid)
            {
                var cartRule = new CartRule
                {
                    Name                  = model.Name,
                    Description           = model.Description,
                    IsActive              = model.IsActive,
                    StartOn               = model.StartOn,
                    EndOn                 = model.EndOn,
                    IsCouponRequired      = model.IsCouponRequired,
                    RuleToApply           = model.RuleToApply,
                    DiscountAmount        = model.DiscountAmount,
                    DiscountStep          = model.DiscountStep,
                    MaxDiscountAmount     = model.MaxDiscountAmount,
                    UsageLimitPerCoupon   = model.UsageLimitPerCoupon,
                    UsageLimitPerCustomer = model.UsageLimitPerCustomer
                };

                if (model.IsCouponRequired && !string.IsNullOrWhiteSpace(model.CouponCode))
                {
                    var coupon = new Coupon
                    {
                        CartRule              = cartRule,
                        Code                  = model.CouponCode,
                        ExpirationOn          = model.EndOn,
                        UsageLimit            = model.UsageLimitPerCoupon,
                        UsageLimitPerCustomer = model.UsageLimitPerCustomer
                    };

                    cartRule.Coupons.Add(coupon);
                }

                _cartRuleRepository.Add(cartRule);
                _cartRuleRepository.SaveChange();

                return(Ok());
            }
            return(new BadRequestObjectResult(ModelState));
        }