public ActionResult Add(ArticleViewModel model)
 {
     try
     {
         if (ModelState.IsValid)
         {
             AddArticle(model);
             return RedirectToAction("MyArticles", "Home", new { userId = WebSecurity.CurrentUserId });
         }
     }
     catch (DataException)
     {
         ModelState.AddModelError("", Resources.Resources.UnableToSaveChanges);
     }
     return View(model);
 }
 public ActionResult Edit(int id)
 {
     var article = _unitOfWork.ArticleRepository.GetByID(id);
     if (article.UserId != WebSecurity.CurrentUserId) return RedirectToAction("Http403", "Error");
     var model = new ArticleViewModel
     {
         Id = article.Id,
         Title = article.Title,
         Description = article.Description,
     };
     var tags = article.Tags.Select(item => item.Name).ToList();
     model.Tags = String.Join(", ", tags);
     return View(model);
 }
 private void EditArticle(ArticleViewModel model)
 {
     var user = _unitOfWork.UserRepository.GetByID(WebSecurity.CurrentUserId);
     var articleToUpdate = _unitOfWork.ArticleRepository.GetByID(model.Id);
     articleToUpdate.Title = model.Title;
     articleToUpdate.Description = model.Description;
     articleToUpdate.User = user;
     if ((model.Tags != null) && !String.IsNullOrWhiteSpace(model.Tags))
     {
         SetTags(model.Tags, articleToUpdate);
         ClearCache();
     }
     else
     {
         _unitOfWork.ArticleRepository.DeleteArticleTag(articleToUpdate.Id);
     }
     _unitOfWork.ArticleRepository.Update(articleToUpdate);
     _unitOfWork.Save();
 }
 private void AddArticle(ArticleViewModel model)
 {
     var article = new Article
     {
         Title = String.IsNullOrWhiteSpace(model.Title) ? "..." : model.Title,
         Description = model.Description,
         UserId = WebSecurity.CurrentUserId,
     };
     if (model.Tags != null)
     {
         SetTags(model.Tags, article);
     }
     _unitOfWork.ArticleRepository.Insert(article);
     _unitOfWork.Save();
     ClearCache();
 }