Ejemplo n.º 1
0
        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");
        }
Ejemplo n.º 2
0
        //Render the Page for Coupon Redemtion
        public ActionResult RedeemCoupon()
        {
            var viewModel = new AdminCouponViewModel()
            {
                Merchants = _context.Merchants.ToList()
            };

            return(View(viewModel));
        }
Ejemplo n.º 3
0
        //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));
        }