Beispiel #1
0
        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;
        }
Beispiel #2
0
        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");
        }
Beispiel #3
0
 public void SaveArticle(Article article)
 {
     var cache = _store.Articles.SingleOrDefault(a => a.Id == article.Id);
     CreateOrChangeEntityLanguage(cache);
     _store.SaveChanges();
 }
Beispiel #4
0
        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;
            }

        }
Beispiel #5
0
        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");
        }