public ActionResult Review(CreateEditVM createEditVM) { var repo = RepositoryFactory.GetRepository(); //chose to edit if ((createEditVM.Post.IsForReview && !createEditVM.Post.IsPublished) && !User.IsInRole("moderator")) { return(RedirectToAction("Edit/" + createEditVM.Post.PostId.ToString())); } else if (Request.IsAuthenticated && User.IsInRole("moderator")) { repo.Review(createEditVM.Post); return(RedirectToAction("Dashboard")); } else if (createEditVM.Post.IsForReview == false && createEditVM.Post.IsPublished == false) //returned to contributor { repo.Review(createEditVM.Post); return(RedirectToAction("Dashboard")); } else //published { repo.Review(createEditVM.Post); return(RedirectToAction("Dashboard")); } }
public async Task <IActionResult> Create(CreateEditVM createEditVM) { if (ModelState.IsValid) { try { //Step 1- Check Validation Of Image createEditVM.Image.Check(1048576, new string[] { "image/jpg", "image/jpeg", "image/png", "image/gif" }); //Step 2- Generate Name & Path Of File var imageName = DateTime.Now.ToString("yyyyMMddhhmmssffff") + Path.GetExtension(createEditVM.Image.FileName); var imagePath = Path.Combine("UserUploads/Products", imageName); //Step 3- Store File In File System _ifileManager.SaveFile(createEditVM.Image, imagePath); //Step 4- Add Image Path To Model createEditVM.Product.ImagePath = "/UserUploads/Products/" + imageName; //Step 5- Add Record To Database _context.Add(createEditVM.Product); await _context.SaveChangesAsync(); TempData["ProductCreateStatus"] = "OK"; } catch (Exception e) { TempData["ProductCreateStatus"] = e.Message; } return(RedirectToAction(nameof(AdminIndex))); } return(View(createEditVM.Product)); }
public ActionResult Create() { var repo = RepositoryFactory.GetRepository(); CreateEditVM createEditVM = new CreateEditVM(); createEditVM.Categories = repo.GetAllCategories(); createEditVM.StaticPosts = repo.GetAllStaticPublished(); createEditVM.Images = repo.GetAllImages(); createEditVM.Post = new Post(); return(View(createEditVM)); }
public ActionResult Review(int id) { var repo = RepositoryFactory.GetRepository(); CreateEditVM createEditVM = new CreateEditVM(); createEditVM.Post = repo.GetPostByID(id); createEditVM.Post.PostText = WebUtility.HtmlDecode(createEditVM.Post.PostText); createEditVM.Post.PostText = createEditVM.Post.PostText.Substring(50); createEditVM.Post.PostText = createEditVM.Post.PostText.Substring(0, createEditVM.Post.PostText.Length - 16); createEditVM.Categories = repo.GetAllCategories(); createEditVM.StaticPosts = repo.GetAllStaticPublished(); repo.SetPostLists(createEditVM.Post); return(View(createEditVM)); }
public ActionResult Edit(int id) { var repo = RepositoryFactory.GetRepository(); CreateEditVM createEditVM = new CreateEditVM(); createEditVM.Post = repo.GetPostByID(id); repo.SetPostLists(createEditVM.Post); createEditVM.Post.PostText = WebUtility.HtmlDecode(createEditVM.Post.PostText); createEditVM.Post.PostText = createEditVM.Post.PostText.Substring(50); createEditVM.Post.PostText = createEditVM.Post.PostText.Substring(0, createEditVM.Post.PostText.Length - 16); createEditVM.Categories = repo.GetAllCategories(); createEditVM.StaticPosts = repo.GetAllStaticPublished(); if (User.IsInRole("admin")) { createEditVM.Post.IsForReview = true; } createEditVM.Images = repo.GetAllImages(); createEditVM.Post.IsPublished = false; return(View(createEditVM)); }
public ActionResult Edit(CreateEditVM createEditVM) { if (string.IsNullOrEmpty(createEditVM.Post.PostTitle) || string.IsNullOrEmpty(createEditVM.Post.PostText) || string.IsNullOrEmpty(createEditVM.Post.Author)) { ModelState.AddModelError("NotValid", "A title, author and text are required before saving/submitting"); } if (User.IsInRole("admin")) { createEditVM.Post.IsForReview = true; } if (ModelState.IsValid) { createEditVM.Post.PostText = WebUtility.HtmlEncode(createEditVM.Post.PostText); var repo = RepositoryFactory.GetRepository(); if (createEditVM.Post.PostId == 0) //Save or add work regardless of button choice { createEditVM.Post.PostId = repo.CreateNewPost(createEditVM.Post); } else { repo.SavePost(createEditVM.Post); } string fileName; if (createEditVM.Post.IsForReview) { return(RedirectToAction("Review/" + createEditVM.Post.PostId)); } if (createEditVM.UploadedFile != null) { fileName = createEditVM.UploadedFile.FileName; if (fileName != null && fileName.Contains(".jpg")) { if (createEditVM.ImageTitle == null) { fileName = createEditVM.UploadedFile.FileName; } else { fileName = createEditVM.ImageTitle + ".jpg"; } if (createEditVM.UploadedFile != null && createEditVM.UploadedFile.ContentLength > 0) { string path = Path.Combine(Server.MapPath("~/images"), Path.GetFileName(fileName)); createEditVM.UploadedFile.SaveAs(path); repo.SaveNewImage(fileName); } } repo.SetPostLists(createEditVM.Post); createEditVM.StaticPosts = repo.GetAllStaticPublished(); createEditVM.Categories = repo.GetAllCategories(); createEditVM.Post.PostText = WebUtility.HtmlDecode(createEditVM.Post.PostText); createEditVM.Images = repo.GetAllImages(); return(View("Edit", createEditVM)); } else { createEditVM.Post = repo.GetPostByID(createEditVM.Post.PostId); if (User.IsInRole("admin")) { createEditVM.Post.IsForReview = true; } repo.SetPostLists(createEditVM.Post); createEditVM.StaticPosts = repo.GetAllStaticPublished(); createEditVM.Categories = repo.GetAllCategories(); createEditVM.Post.PostText = WebUtility.HtmlDecode(createEditVM.Post.PostText); createEditVM.Images = repo.GetAllImages(); return(View("Edit", createEditVM)); } } else { var repo = RepositoryFactory.GetRepository(); repo.SetPostLists(createEditVM.Post); createEditVM.StaticPosts = repo.GetAllStaticPublished(); createEditVM.Categories = repo.GetAllCategories(); createEditVM.Post.PostText = WebUtility.HtmlDecode(createEditVM.Post.PostText); createEditVM.Images = repo.GetAllImages(); return(View(createEditVM)); } }
public async Task <IActionResult> Edit(int id, CreateEditVM createEditVM) { if (id != createEditVM.Product.Id) { return(NotFound()); } if (ModelState.IsValid) { if (createEditVM.Image == null) { //User doesn't want to change product image try { _context.Update(createEditVM.Product); await _context.SaveChangesAsync(); TempData["ProductEditStatus"] = "OK"; } catch (Exception e) { TempData["ProductEditStatus"] = e.Message; } return(RedirectToAction(nameof(AdminIndex))); } else { //User wants to change product image try { //Step 1- Check Validation Of Image createEditVM.Image.Check(1048576, new string[] { "image/jpg", "image/jpeg", "image/png", "image/gif" }); //Step 2- Generate Name & Path Of File var imageName = DateTime.Now.ToString("yyyyMMddhhmmssffff") + Path.GetExtension(createEditVM.Image.FileName); var imagePath = Path.Combine("UserUploads/Products", imageName); //Step 3- Store File In File System _ifileManager.SaveFile(createEditVM.Image, imagePath); //Step 4- Delete Old Image _ifileManager.DeleteFile(createEditVM.Product.ImagePath); //Step 5- Add Image path to Model createEditVM.Product.ImagePath = "/UserUploads/Products/" + imageName; //Step 6- Update Record To Database _context.Update(createEditVM.Product); await _context.SaveChangesAsync(); TempData["ProductEditStatus"] = "OK"; } catch (DbUpdateConcurrencyException) { TempData["ProductEditStatus"] = "عملیات مورد نظر به دلیل همزمانی با یک عملیات دیگر صورت نپذیرفت."; } catch (Exception e) { TempData["ProductEditStatus"] = e.Message; } return(RedirectToAction(nameof(AdminIndex))); } } return(View(createEditVM.Product)); }