public IActionResult CreatePost(CreateEditPostViewModel viewModel) { if (_userService.GetOrCreateUser(User.Identity.Name).AuthLevel == Models.User.AuthType.Admin) { if (ModelState.IsValid) { Post post = new Post(); post.Date = DateTime.Now; post.Description = viewModel.Description; post.Picture = viewModel.Picture; post.Subtitle = viewModel.Subtitle; post.Title = viewModel.Title; post.Type = viewModel.Type; this._postRepository.Add(post); return(RedirectToAction("ManagePosts", new { changeAction = "created" })); } return(View(viewModel)); } else { return(RedirectToAction("Index", "Admin", new { changeAction = "unauth" })); } }
public ActionResult Create(CreateEditPostViewModel model) { if (!ModelState.IsValid) { return(View()); } var fileExtension = Path.GetExtension(model.FileUpload.FileName).ToLower(); if (!AllowedExtenions.Contains(fileExtension)) { ModelState.AddModelError("", "File extension is not allowed"); return(View()); } var userId = User.Identity.GetUserId(); var post = new Post(); post.UserId = userId; post.Body = model.Body; post.Title = model.Title; post.Published = model.Published; post.Slug = model.Title.ToSlug(); post.MediaUrl = UploadFile(model.FileUpload); do { if (Context.Posts.Any(p => p.Slug == post.Slug)) { var random = new Random(); var randomNumber = random.Next(0, 1001); post.Slug += randomNumber; } } while (Context.Posts.Any(p => p.Slug == post.Slug)); Context.Posts.Add(post); Context.SaveChanges(); return(RedirectToAction(nameof(PostController.Index))); }
public IActionResult CreatePost() { if (_userService.GetOrCreateUser(User.Identity.Name).AuthLevel == Models.User.AuthType.Admin) { CreateEditPostViewModel viewModel = new CreateEditPostViewModel(); IEnumerable <string> pics = System.IO.Directory.EnumerateFiles(_env.WebRootPath + "\\images\\", "*", System.IO.SearchOption.AllDirectories); List <string> modifiedPics = new List <string>(); foreach (string item in pics) { modifiedPics.Add(item.Substring(item.LastIndexOf('\\') + 1)); } ViewBag.Pictures = modifiedPics; return(View(viewModel)); } else { return(RedirectToAction("Index", "Admin", new { changeAction = "unauth" })); } }
public ActionResult Edit(int?id) { if (!id.HasValue) { return(RedirectToAction(nameof(PostController.Index))); } var post = Context.Posts.FirstOrDefault(p => p.Id == id.Value); if (post == null) { return(RedirectToAction(nameof(PostController.Index))); } var model = new CreateEditPostViewModel(); model.Body = post.Body; model.MedialUrl = post.MediaUrl; model.Title = post.Title; model.Published = post.Published; return(View(model)); }
public ActionResult Edit(int?id, CreateEditPostViewModel model) { if (!id.HasValue) { return(RedirectToAction(nameof(PostController.Index))); } if (!ModelState.IsValid) { return(View()); } var fileExtension = Path.GetExtension(model.FileUpload.FileName).ToLower(); if (!AllowedExtenions.Contains(fileExtension)) { ModelState.AddModelError("", "File extension is not allowed"); return(View()); } var post = Context.Posts.FirstOrDefault(p => p.Id == id.Value); post.Published = model.Published; post.Title = model.Title; post.Body = model.Body; post.DateUpdated = DateTime.Now; if (model.FileUpload != null) { post.MediaUrl = UploadFile(model.FileUpload); } Context.SaveChanges(); return(RedirectToAction(nameof(PostController.Index))); }
private ActionResult SavePost(int?id, CreateEditPostViewModel formData) { if (!ModelState.IsValid) { return(View()); } var appUserId = User.Identity.GetUserId(); //Validating file upload if (formData.Media != null) { fileExtensionForSavingPost = Path.GetExtension(formData.Media.FileName).ToLower(); if (!ImgHandler.AllowedFileExtensions.Contains(fileExtensionForSavingPost)) { ModelState.AddModelError("", "File extension is not allowed."); return(View()); } } if (!id.HasValue) { postForSavingPost = new Post(); postForSavingPost.UserId = appUserId; postForSavingPost.DateCreated = DateTime.Now; // Make the Slug // RemoveSpecialCharacters var titleRmSpCharEd = RemoveSpecialCharacters(formData.Title).Trim(); // Split by space,then Join with dash var formatedSlug = string.Join("-", titleRmSpCharEd.Split(' ')); var lowerFormatedSlug = formatedSlug.ToLower(); // If Slug is empty if (!lowerFormatedSlug.Any()) { // Create a 6 digit code var longCode = GetHashCode().ToString().Substring(0, 6); // Concat it to the slug lowerFormatedSlug = $"{longCode}"; } // Check if name repeated var repeatedSlug = DbContext.Posts.FirstOrDefault( p => p.Slug == lowerFormatedSlug); if (repeatedSlug != null) { // Create a 4 digit code var shortCode = GetHashCode().ToString().Substring(0, 4); // Concat it to the slug lowerFormatedSlug = $"{lowerFormatedSlug}-{shortCode}"; } // End of Make the Slug //Saving it postForSavingPost.Slug = lowerFormatedSlug; DbContext.Posts.Add(postForSavingPost); } else { postForSavingPost = DbContext.Posts.FirstOrDefault( p => p.Id == id); postForSavingPost.DateUpdated = DateTime.Now; if (postForSavingPost == null) { return(RedirectToAction(nameof(PostController.Index))); } } postForSavingPost.Title = formData.Title; postForSavingPost.Body = formData.Body; postForSavingPost.Published = formData.Published; //Handling file upload if (formData.Media != null) { if (!Directory.Exists(ImgHandler.MappedUploadFolder)) { Directory.CreateDirectory(ImgHandler.MappedUploadFolder); } var fileName = formData.Media.FileName; var fullPathWithName = ImgHandler.MappedUploadFolder + fileName; formData.Media.SaveAs(fullPathWithName); postForSavingPost.MediaUrl = ImgHandler.ImgUploadFolder + fileName; } DbContext.SaveChanges(); return(RedirectToAction(nameof(PostController.Index))); }
public ActionResult Create(CreateEditPostViewModel formData) { return(SavePost(null, formData)); }
public ActionResult Edit(int id, CreateEditPostViewModel formData) { return(SavePost(id, formData)); }