public async Task <ActionResult> Create(CouponVM c) { if (ModelState.IsValid) { // check if only one of the possible options has been selected if (!c.IsOnlyOneOptionSelected) { ModelState.AddModelError(string.Empty, "Only one of the options should be selected"); await PopulateSelectLists(); return(View(c)); } var uniqueId = GenerateUniqueId(); while (await _cs.UniqueIdExisting(uniqueId)) { uniqueId = GenerateUniqueId(); } c.UniqueId = uniqueId; c.SiteUserId = UserData.UserId; c.Img = await GenerateImage(uniqueId, c.Expires, c.Discount); c = await _cs.Create(c); return(RedirectToAction("Index", new { createdId = c.CouponId })); } await PopulateSelectLists(); return(View(c)); }
public async Task <IHttpActionResult> PostCoupon(Coupon coupon) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } coupon.StartDate = DateTime.UtcNow; db.Coupons.Add(coupon); await db.SaveChangesAsync(); var cou = await db.Coupons.Include(c => c.Products).Include(c => c.Campuses).SingleOrDefaultAsync(c => c.Id == coupon.Id); var data = new CouponVM() { CouponName = coupon.CouponName, Id = coupon.Id, OverDate = coupon.OverDate, Rule = coupon.Rule, StartDate = coupon.StartDate, State = coupon.State, Vlaue = coupon.Vlaue, campusIds = coupon.Campuses.Select(c => c.CampusID).ToList(), productIds = coupon.Products.Select(c => c.ProductId).ToList() }; return(CreatedAtRoute("DefaultApi", new { id = data.Id }, data)); }
public async Task <IHttpActionResult> PatchStudent(int id, JsonPatchDocument <Coupon> newdata) { var coupon = await db.Coupons.FindAsync(id); if (coupon == null) { return(NotFound()); } newdata.ApplyUpdatesTo(coupon); await db.SaveChangesAsync(); coupon = await db.Coupons.Include(cou => cou.Campuses).Include(c => c.Products).Where(c => c.Id == id).SingleOrDefaultAsync(); var data = new CouponVM() { CouponName = coupon.CouponName, Id = coupon.Id, OverDate = coupon.OverDate, Rule = coupon.Rule, StartDate = coupon.StartDate, State = coupon.State, Vlaue = coupon.Vlaue, campusIds = coupon.Campuses.Select(c => c.CampusID).ToList(), productIds = coupon.Products.Select(c => c.ProductId).ToList() }; return(Ok(data)); }
public async Task <IHttpActionResult> PutProducts(int id, bool prd, List <int> pids) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var products = db.CouponProducts.Where(c => c.CouponId == id).ToList(); var oldids = products.Select(c => c.ProductId); foreach (var prdt in products) //删除产品 { if (!pids.Contains(prdt.ProductId)) { db.CouponProducts.Remove(prdt); } } foreach (var cid in pids) //新增产品 { if (!oldids.Contains(cid)) { CouponProduct cc = new CouponProduct(); cc.ProductId = cid; cc.CouponId = id; db.CouponProducts.Add(cc); } } try { await db.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!CouponExists(id)) { return(NotFound()); } else { throw; } } var coupon = await db.Coupons.Include(c => c.Products).Include(c => c.Campuses).SingleOrDefaultAsync(c => c.Id == id); var data = new CouponVM() { CouponName = coupon.CouponName, Id = coupon.Id, OverDate = coupon.OverDate, Rule = coupon.Rule, StartDate = coupon.StartDate, State = coupon.State, Vlaue = coupon.Vlaue, campusIds = coupon.Campuses.Select(c => c.CampusID).ToList(), productIds = coupon.Products.Select(c => c.ProductId).ToList() }; return(Ok(data)); }
public async Task <CouponVM> Create(CouponVM cvm) { var c = _map.Map <Coupon>(cvm); c = db.Coupons.Add(c); await db.SaveChangesAsync(); return(_map.Map <CouponVM>(c)); }
public async Task <ActionResult> Create() { var c = new CouponVM(); c.Expires = DateTime.Now.AddDays(30); // default expiration date c.ForAll = true; //select for all products by default await PopulateSelectLists(); return(View(c)); }
public static bool IsDatesValid(this CouponVM model) { if (model.StartDate < DateTime.Today || model.EndDate < DateTime.Today || model.EndDate < model.StartDate) { return(false); } else { return(true); } }
// GET: Pharmacist/Coupons public ActionResult Index() { var model = new CouponVM(); model.Coupons = db.Coupons .ToArray() .OrderByDescending(c => c.StartDate) .Where(c => c.isLoyaltyCoupon == false && c.Active == true) .Select(c => new CouponItem(c)) .ToList(); ViewBag.Customers = db.Patients.ToList(); return(View(model)); }
public async Task <IHttpActionResult> PutCoupon(int id, Coupon coupon) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != coupon.Id) { return(BadRequest()); } db.Entry(coupon).State = EntityState.Modified; try { await db.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!CouponExists(id)) { return(NotFound()); } else { throw; } } coupon = await db.Coupons.Include(cou => cou.Campuses).Include(c => c.Products).Where(c => c.Id == id).SingleOrDefaultAsync(); var data = new CouponVM() { CouponName = coupon.CouponName, Id = coupon.Id, OverDate = coupon.OverDate, Rule = coupon.Rule, StartDate = coupon.StartDate, State = coupon.State, Vlaue = coupon.Vlaue, campusIds = coupon.Campuses.Select(c => c.CampusID).ToList(), productIds = coupon.Products.Select(c => c.ProductId).ToList() }; return(Ok(data)); }
public async Task <ActionResult> AddCoupon(CouponVM model) { if (!ModelState.IsValid) { TempData["Error"] = "Something happened!"; return(RedirectToAction("index")); } var code_upper = model.Code.ToUpper(); if (!model.IsDatesValid()) { TempData["Error"] = "Dates were invalid!"; return(RedirectToAction("index")); } var isCodeValid = db.Coupons.IsCodeUnique(code_upper); if (!isCodeValid) { TempData["Error"] = "Coupon Code already exists"; return(RedirectToAction("index")); } #region Generating QR //string _path = Path.Combine(Server // .MapPath("~/Files/Coupons"), code_upper + ".png"); //try //{ // //using IronBarCode; // //using System.Drawing; // // Styling a QR code and adding annotation text // var MyBarCode = IronBarCode.BarcodeWriter.CreateBarcode(code_upper, BarcodeWriterEncoding.QRCode); // MyBarCode.AddAnnotationTextAboveBarcode("Coupon"); // MyBarCode.AddBarcodeValueTextBelowBarcode(); // MyBarCode.SetMargins(100); // MyBarCode.ChangeBarCodeColor(Color.Purple); // // Save as HTML // MyBarCode.SaveAsPng(_path); //} //catch (Exception e) //{ // throw; //} #endregion db.Coupons.Add(new Coupon { Code = code_upper, Description = model.Description, StartDate = model.StartDate, EndDate = model.EndDate, DiscountRate = model.DiscountRate, //QRcodeURL = "/Files/Coupons/" + code_upper + ".png", QRcodeURL = "/", MinimumOrderAmount = model.MinimumOrderAmount, isLoyaltyCoupon = false, Active = true, Display = false }); await db.SaveChangesAsync(); TempData["Success"] = "Coupon was successfully created"; return(RedirectToAction("index")); }