public ActionResult Edit(ItemViewModel model)
 {
     try
     {
         if (ModelState.IsValid)
         {
             EditItem(model);
             return RedirectToAction("Details", "Article", new { id = model.ArticleId });
         }
     }
     catch (DataException)
     {
         ModelState.AddModelError("", Resources.Resources.UnableToSaveChanges);
     }
     return View(model);
 }
 private void EditItem(ItemViewModel model)
 {
     var article = _unitOfWork.ArticleRepository.GetByID(model.ArticleId);
     var itemToUpdate = _unitOfWork.ItemRepository.GetByID(model.Id);
     itemToUpdate.Article = article;
     itemToUpdate.Title = model.Title;
     var md = new MarkdownDeep.Markdown { ExtraMode = true };
     var html = md.Transform(model.Body);
     itemToUpdate.Body = html;
     _unitOfWork.ItemRepository.Update(itemToUpdate);
     _unitOfWork.Save();
     if (Request.Cookies[model.Id.ToString()] != null)
     {
         var cookie = Request.Cookies[model.Id.ToString()];
         cookie.Expires = DateTime.Now.AddDays(-1);
         Response.Cookies.Set(cookie);
     }
     DraftService.DeleteDraft(model.Id.ToString());
 }
 public ActionResult Edit(int id)
 {
     var item = _unitOfWork.ItemRepository.GetByID(id);
     if (item.Article.UserId != WebSecurity.CurrentUserId) return RedirectToAction("Http403", "Error");
     var model = new ItemViewModel
     {
         Id = item.Id,
         Title = item.Title,
         Body = item.Body,
         ArticleId = item.ArticleId,
     };
     if (Request.Cookies[model.Id.ToString()] != null)
     {
         model.Body = DraftService.GetDraft(Request.Cookies[model.Id.ToString()].Value);
     }
     else
     {
         var cookie = new HttpCookie(model.Id.ToString())
         {
             Value = model.Id.ToString(),
             Expires = DateTime.Now.AddDays(1)
         };
         Response.Cookies.Add(cookie);
     }
     return View(model);
 }