Пример #1
0
        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"));
            }
        }
Пример #2
0
        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));
        }
Пример #3
0
        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));
        }
Пример #4
0
        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));
        }
Пример #5
0
        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));
        }
Пример #6
0
        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));
            }
        }
Пример #7
0
        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));
        }