public ActionResult Create(ArticleItem model) { try { model.Id = 0; var article = _context.Articles.First(a => a.Id == model.ArticleId); model.Text = HttpUtility.HtmlDecode(model.Text); var cache = new ArticleItem { Article = article, ContentType = 0, SortOrder = model.SortOrder, Text = model.Text }; article.ArticleItems.Add(cache); int maxSortOrder = article.ArticleItems.Max(c => (int?)c.SortOrder) ?? 0; for (int i = 0; i < Request.Files.Count; i++) { maxSortOrder++; var file = Request.Files[i]; if (file == null) continue; if (string.IsNullOrEmpty(file.FileName)) continue; var ai = new ArticleItemImage { SortOrder = maxSortOrder }; string fileName = IOHelper.GetUniqueFileName("~/Content/Images", file.FileName); string filePath = Server.MapPath("~/Content/Images"); filePath = Path.Combine(filePath, fileName); GraphicsHelper.SaveOriginalImage(filePath, fileName, file); ai.ImageSource = fileName; cache.ArticleItemImages.Add(ai); } var lang = _context.Languages.FirstOrDefault(p => p.Id == model.CurrentLang); if (lang != null) { CreateOrChangeContentLang(_context, model, cache, lang); } return RedirectToAction("Details", "Article", new { id = article.Id }); } catch (Exception ex) { TempData["errorMessage"] = ex.Message; return View(model); } }
public ActionResult Edit(ArticleItem model) { try { model.Text = HttpUtility.HtmlDecode(model.Text); var cache = _context.ArticleItems.FirstOrDefault(p => p.Id == model.Id); if (cache != null) { TryUpdateModel(cache, new[] { "SortOrder", "Title", "Text" }); for (int i = 0; i < Request.Files.Count; i++) { var file = Request.Files[i]; if (file == null) continue; if (string.IsNullOrEmpty(file.FileName)) continue; var ai = new ArticleItemImage (); string fileName = IOHelper.GetUniqueFileName("~/Content/Images", file.FileName); string filePath = Server.MapPath("~/Content/Images"); filePath = Path.Combine(filePath, fileName); GraphicsHelper.SaveOriginalImage(filePath, fileName, file); ai.ImageSource = fileName; cache.ArticleItemImages.Add(ai); } var lang = _context.Languages.FirstOrDefault(p => p.Id == model.CurrentLang); if (lang != null) { CreateOrChangeContentLang(_context, model, cache, lang); } } return RedirectToAction("Details", "Article", new{id=cache.ArticleId}); } catch(Exception ex) { TempData["errorMessage"] = ex.Message; return View(model); } }