Пример #1
0
        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);
        }
Пример #2
0
        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);
        }