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)); }