public async Task<IActionResult> Index(IndexViewModel model, bool overwrite) { if (ModelState.IsValid) { var rsvp = await _db.Rsvps.FirstOrDefaultAsync(x => string.Equals(x.Name, model.Name, StringComparison.CurrentCultureIgnoreCase)); if (rsvp == null) { rsvp = new Rsvp(); _db.Rsvps.Add(rsvp); } else { if (!overwrite) { model.DisplayOverwriteMessage = true; return View(model); } } _mapper.Map(model, rsvp); rsvp.DateTime = DateTime.Now.ToUniversalTime(); await _db.SaveChangesAsync(); Response.Cookies.Append(CookieKey, Convert.ToBase64String(Encoding.Unicode.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(model))), new CookieOptions { Expires = new DateTime(2016, 9, 4) }); model.DisplaySuccessMessage = true; } return View(model); }
public IActionResult Index() { var model = new IndexViewModel(); if (Request.Cookies.ContainsKey(CookieKey)) { try { model = Newtonsoft.Json.JsonConvert.DeserializeObject<IndexViewModel>(Encoding.Unicode.GetString(Convert.FromBase64String(Request.Cookies[CookieKey]))); } catch { // do nothing here } } return View(model); }