private string ValidateCoupon(AdminCouponViewModel model) { var checkCoupon = _context.ProductionCodes.Include(c => c.Offers).FirstOrDefault(c => c.CouponCode.Replace("-", "") == model.CouponCode.Replace("-", "") && c.IsUsed == false && c.IsActive == true); //vlaidates if code exist if (checkCoupon == null) { return("Invalid Coupon"); } //Check if max coupons used if (checkCoupon.Offers.TotalOffer == checkCoupon.Offers.CouponUsed) { return("Offer Coupon Exhausted"); } //Increment coupons used checkCoupon.Offers.CouponUsed += 1; checkCoupon.IsUsed = true; //save changes to the database _context.SaveChanges(); return("Valid Coupon"); }
//Render the Page for Coupon Redemtion public ActionResult RedeemCoupon() { var viewModel = new AdminCouponViewModel() { Merchants = _context.Merchants.ToList() }; return(View(viewModel)); }
//Method called via ajax to validate coupon public ActionResult Validate(AdminCouponViewModel viewModel) { dynamic showMessage = string.Empty; #region //if (!ModelState.IsValid) //{ // showMessage = new // { // statusCode = 404, // Message = "Oops!" // }; // return Json(showMessage, JsonRequestBehavior.AllowGet); //} #endregion var getResults = ValidateCoupon(viewModel); showMessage = new { statusCode = 200, Message = getResults//"Coupon Valid" }; return(Json(data: showMessage, behavior: JsonRequestBehavior.AllowGet)); }