public IActionResult Article(int?id = null) { ViewBag.Users = _UserRepo.GetAll(); ViewBag.Tags = _TagRepo.GetAll(); var article = _ArticleRepo.GetByID(id); ArticleForm articleForm; if (article != null) { articleForm = ArticleForm.FromModel(article); } else { articleForm = new ArticleForm(); } return(View(articleForm)); }
public IActionResult ArticleEdit(ArticleForm articleForm) { ModelState.Remove("Image.ID"); ViewBag.Users = _UserRepo.GetAll(); ViewBag.Tags = _TagRepo.GetAll(); var zeroId = articleForm.ID == 0; if (ModelState.IsValid) { Article article; if (articleForm.ID != 0) { article = _ArticleRepo.GetByID(articleForm.ID); } else { article = new Article { ID = articleForm.ID }; article.Created = DateTime.UtcNow; } var passed = true; try { _ArticleRepo.Update(articleForm.ToModel(article, ViewBag.Tags)); } catch (FormatException) { ViewBag.Alert = "Couldn't parse"; passed = false; } if (passed) { _ArticleRepo.Save(); ViewBag.Alert = "Saved!"; articleForm = ArticleForm.FromModel(article); } } if (Request.Form.Files["cover-image"] is not null && articleForm.ID != 0) { var article = _ArticleRepo.GetByID(articleForm.ID); article.Image = new Image { ContentType = Request.Form.Files["cover-image"].ContentType, Data = new byte[Request.Form.Files["cover-image"].Length] }; Request.Form.Files["cover-image"].OpenReadStream().Read(article.Image.Data, 0, article.Image.Data.Length); articleForm.Image.ToModel(article.Image); _ArticleRepo.Update(article); _ArticleRepo.Save(); ViewBag.Message = "Image updated!"; } if (zeroId && ModelState.IsValid) { return(RedirectToAction("Article", new { articleForm.ID })); } return(View("Article", articleForm)); }