public int AddArticle(Article article) { if (_store.Articles.Any(c => c.Name == article.Name)) { throw new Exception(string.Format("Article {0} already exists", article.Name)); } _store.Articles.Add(article); CreateOrChangeEntityLanguage(article); _store.SaveChanges(); return article.Id; }
public ActionResult Create(Article model) { _repository.LangId = CurrentLangId; try { model.Id = 0; var article = new Article { Name = string.IsNullOrEmpty(model.Name) ? SiteHelper.UpdatePageWebName(model.Name, model.Title) : SiteHelper.UpdatePageWebName(model.Name), Date = model.Date, Title = model.Title, Description = model.Description, IsActive = false }; article.Text = model.Text == null ? "" : HttpUtility.HtmlDecode(model.Text); var file = Request.Files[0]; if (file != null && !string.IsNullOrEmpty(file.FileName)) { string fileName = IOHelper.GetUniqueFileName("~/Content/Images", file.FileName); string filePath = Server.MapPath("~/Content/Images"); filePath = Path.Combine(filePath, fileName); GraphicsHelper.SaveOriginalImage(filePath, fileName, file, 1500); article.ImageSource = fileName; } else { article.ImageSource = article.ImageSource ?? ""; } _repository.AddArticle(article); } catch (Exception ex) { TempData["errorMessage"] = ex.Message + (ex.InnerException != null && !string.IsNullOrEmpty(ex.InnerException.Message) ? ex.InnerException.Message : ""); return View(model); } return RedirectToAction("Index"); }
public void SaveArticle(Article article) { var cache = _store.Articles.SingleOrDefault(a => a.Id == article.Id); CreateOrChangeEntityLanguage(cache); _store.SaveChanges(); }
private void CreateOrChangeEntityLanguage(Article cache) { var categoryLang = _store.ArticleLangs.FirstOrDefault(r => r.ArticleId == cache.Id && r.LanguageId == LangId); if (categoryLang == null) { var entityLang = new ArticleLang { ArticleId = cache.Id, LanguageId = LangId, Title = cache.Title, Description = cache.Description, Text = cache.Text, }; _store.ArticleLangs.Add(entityLang); } else { categoryLang.Title = cache.Title; categoryLang.Description = cache.Description; categoryLang.Text = cache.Text; } }
public ActionResult Edit(Article model) { _repository.LangId = CurrentLangId; try { var article = _repository.GetArticle(model.Id); article.Name = SiteHelper.UpdatePageWebName(model.Name); TryUpdateModel(article, new[] { "Title", "Date", "Description", "IsActive" }); article.Text = model.Text == null ? "" : HttpUtility.HtmlDecode(model.Text); var file = Request.Files[0]; if (file != null && !string.IsNullOrEmpty(file.FileName)) { if (!string.IsNullOrEmpty(article.ImageSource)) { ImageHelper.DeleteImage(article.ImageSource); } string fileName = IOHelper.GetUniqueFileName("~/Content/Images", file.FileName); string filePath = Server.MapPath("~/Content/Images"); filePath = Path.Combine(filePath, fileName); GraphicsHelper.SaveOriginalImage(filePath, fileName, file, 1500); article.ImageSource = fileName; } else { article.ImageSource = article.ImageSource ?? ""; } _repository.SaveArticle(article); } catch (Exception ex) { TempData["errorMessage"] = ex.Message; return View(model); } return RedirectToAction("Index"); }