Ejemplo n.º 1
0
        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)));
        }
Ejemplo n.º 3
0
 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)));
        }
Ejemplo n.º 6
0
        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)));
        }
Ejemplo n.º 7
0
 public ActionResult Create(CreateEditPostViewModel formData)
 {
     return(SavePost(null, formData));
 }
Ejemplo n.º 8
0
 public ActionResult Edit(int id, CreateEditPostViewModel formData)
 {
     return(SavePost(id, formData));
 }