예제 #1
0
        public ActionResult Edit(EditPostViewModel post)
        {
            if (ModelState.IsValid)
            {
                _postRepository.EditPost(post);

                return(RedirectToAction("Index", "Home"));
            }
            ModelState.AddModelError("", "All fields, except image, should be filled!");
            return(View(post));
        }
예제 #2
0
        public ViewResult Create()
        {
            EditPostViewModel model = new EditPostViewModel
            {
                Post       = new Post(),
                Categories = repository.Categories.ToList(),
                Tags       = repository.Tags.ToList()
            };

            return(View("Edit", model));
        }
예제 #3
0
        public async Task <IActionResult> EditPostContent(EditPostViewModel model)
        {
            var userId = _userManager.GetUserId(User);
            var user   = await _userManager.FindByIdAsync(userId);

            var post = BuildPostEdit(model, user);

            await _postService.EditPostContent(post);

            return(RedirectToAction("Index", "Post", new { id = post.Id }));
        }
예제 #4
0
        //编辑博文
        public async Task <int> UpdatePost(EditPostViewModel editPostViewModel)
        {
            var postEntity = _mapper.Map <PostEntity>(editPostViewModel);

            postEntity.UpdateTime = DateTime.Now;
            var entity = UpdateEntity(postEntity);

            entity.Property(m => m.CreateTime).IsModified = false;
            entity.Property(m => m.Content).IsModified    = false;
            return(await _UnitOfWork.SaveChangesAsync());
        }
예제 #5
0
        public async Task <IActionResult> EditPost(EditPostViewModel vm)
        {
            User user = await _userManager.GetUserAsync(HttpContext.User);

            Post post = await _postRepository.GetById(vm.Post.Id);

            post.Contents = vm.Contents;

            await _postRepository.Update(post);

            return(RedirectToAction("Topic", new { id = vm.Post.Topic.Id }));
        }
예제 #6
0
        public ActionResult EditPost(EditPostViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            m_Posts.UpdatePost(model.EncodedId, model.Title, model.Content);

            TempData["Notification"] = "You successfully update your post.";
            return(Redirect($"/Posts/Details/{model.EncodedId}"));
        }
예제 #7
0
        public ViewResult EditPost(int id)
        {
            var post  = postRepository.Posts.Include(p => p.Channel).First(p => p.Id == id);
            var model = new EditPostViewModel {
                Post      = post,
                Channels  = channelRepository.Channels.Where(c => c.Name != "Blank").OrderBy(c => c.Id).Include(c => c.Parent).ToHashSet(),
                UserId    = post.User == null ? 6 : post.User.Id,
                ChannelId = post.Channel == null ? 1 : post.Channel.Id
            };

            return(View(model));
        }
예제 #8
0
        public ActionResult Edit(EditPostViewModel _post)
        {
            if (ModelState.IsValid)
            {
                var entity = _mapper.Map <PostModel>(_post);
                _postManager.Update(entity);

                return(Redirect(_post.ReturnUrl));
            }

            return(View(_post));
        }
예제 #9
0
        public async Task <IActionResult> Edit(EditPostViewModel model)
        {
            if (ModelState.IsValid)
            {
                /* Update topic of the post.
                 * We use `create` command instead of `update`,
                 * because one topic can relate to multiple posts (one-to-many relations)*/
                var topicDTO = new TopicDTO {
                    Text = model.Topic
                };
                var topicCommand = new CreateTopicCommand {
                    Model = topicDTO
                };

                int topicId;

                try
                {
                    topicId = await _mediator.Send(topicCommand);
                }
                catch (RequestValidationException failures)
                {
                    foreach (var error in failures.Failures)
                    {
                        ModelState.AddModelError(string.Empty, error.Value[0]);
                    }
                    return(View(model));
                }

                // Update post.
                var postDTO = _mapper.Map <EditPostViewModel, PostDTO>(model);
                postDTO.TopicId = topicId;
                var postCommand = new UpdatePostCommand {
                    Model = postDTO
                };

                try
                {
                    await _mediator.Send(postCommand);
                }
                catch (RequestValidationException failures)
                {
                    foreach (var error in failures.Failures)
                    {
                        ModelState.AddModelError(string.Empty, error.Value[0]);
                    }
                    return(View(model));
                }
                return(RedirectToAction("Read", "Posts", new { id = postDTO.Id }));
            }
            return(View(model));
        }
예제 #10
0
        public async Task <IActionResult> EditPost(EditPostViewModel postvm)
        {
            var post = new Post
            {
                Id              = postvm.Id,
                Title           = postvm.Title,
                Introduction    = postvm.Introduction,
                Body            = postvm.Body,
                Description     = postvm.Description,
                Tags            = postvm.Tags,
                Featured        = postvm.Featured,
                CommentsAllowed = postvm.CommentsAllowed,
                Slug            = SlugGenerator.ToSlug(postvm.Title)
            };

            if (postvm.Image == null)
            {
                post.Image = postvm.CurrentImage;
            }
            else
            {
                if (!string.IsNullOrEmpty(postvm.CurrentImage))
                {
                    _fileManager.RemovePostImage(postvm.CurrentImage);
                }
                post.Image = _fileManager.SavePostImage(postvm.Image);
            }
            if (post.Id > 0)
            {
                if (postvm.CategoryId != postvm.CurrentCategoryId)
                {
                    var category = _repo.GetCategoryNoTracking(postvm.CategoryId);
                    post.Category = category;
                }
                post.CreatedDate = postvm.CreatedDate;
                _repo.UpdatePost(post);
            }
            else
            {
                var category = _repo.GetCategory(postvm.CategoryId);
                post.Category = category;
                _repo.AddPost(post);
            }
            if (await _repo.SaveChangesAsync())
            {
                return(RedirectToAction("ManageBlog"));
            }
            else
            {
                return(View(post));
            }
        }
예제 #11
0
        public async Task <IActionResult> Edit(EditPostViewModel model)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.View(model));
            }
            var userId            = this.userManager.GetUserId(this.User);
            var parentUserProfile = this.postsService.GetUserByPostId(model.PostId);

            await this.postsService.EditPost(model.PostId, model.Content, model.Title, userId);

            return(this.Redirect($"/Profiles/Profile?id={parentUserProfile}"));
        }
예제 #12
0
        public async Task <IActionResult> EditPost(int id)
        {
            var post = await _context.Posts.Where(p => p.Id == id).FirstOrDefaultAsync();

            var viewModel = new EditPostViewModel
            {
                Title     = post.Title,
                Content   = post.Content,
                IsVisible = post.IsVisible
            };

            return(View(viewModel));
        }
예제 #13
0
 public IActionResult EditPost(Guid id)
 {
     try
     {
         Post post = _forumsRepository.GetPostById(id);
         EditPostViewModel model = _mapper.Map <Post, EditPostViewModel>(post);
         return(View(model));
     }
     catch
     {
         return(View());
     }
 }
예제 #14
0
        public EditPostViewModel BuildEditPostViewModel(int postId)
        {
            var post  = _postRepository.GetPost(postId);
            var model = new EditPostViewModel()
            {
                Id       = post.Id,
                Content  = post.Content,
                SubTitle = post.SubTitle,
                Title    = post.Title
            };

            return(model);
        }
예제 #15
0
        public async Task <IActionResult> PublishPost(EditPostViewModel model)
        {
            if (model?.Post == null)
            {
                throw new ArgumentNullException(nameof(model));
            }

            model.Post.LoadCategoriesFromString(Request.Form["Categories"]);

            await Service.Publish(model.Post);

            return(RedirectToAction("ViewPost", "Blog", new { model.Post.Permalink }));
        }
예제 #16
0
        public async Task <IActionResult> Edit(EditPostViewModel model)
        {
            if (!this.ModelState.IsValid)
            {
                this.TempData["InfoMessage"] = "Something went wrong!";
                return(this.View(model));
            }

            await this.postService.EditPostAsync(model.Id, model.Title, model.Content);

            this.TempData["InfoMessage"] = "Post successfully edited!";
            return(this.RedirectToAction("DetailedPost", "Posts", new { id = model.Id }));
        }
예제 #17
0
        public ActionResult Add()
        {
            var viewModel = new EditPostViewModel()
            {
                Content = new ContentRegistrationPM()
                {
                    Published = false,
                },
                Tags = new List <string>()
            };

            return(View("Edit", viewModel));
        }
        /// <summary>
        /// Generate single edit post view model.
        /// </summary>
        /// <returns>Singel view model.</returns>
        public EditPostViewModel GetEditPostViewModel()
        {
            var post = new EditPostViewModel()
            {
                Id      = 1,
                Text    = "Text_One",
                Title   = "Title_One",
                Topic   = "Topic_One",
                TopicId = 1,
            };

            return(post);
        }
예제 #19
0
        public void Given_valid_EditPostViewModel_When_Edit_Returns_Home_Index()
        {
            //Given
            var model = new EditPostViewModel();

            //When
            var result = _postController.Edit(model) as RedirectToRouteResult;

            //Then
            Assert.NotNull(result);
            Assert.AreEqual("Home", result.RouteValues["controller"].ToString());
            Assert.AreEqual("Index", result.RouteValues["action"].ToString());
        }
예제 #20
0
        public virtual ActionResult EditPost(EditPostViewModel viewModel)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.View(viewModel));
            }

            this.forumStorageWriter.UpdatePost(viewModel);

            TopicPageRoutedata topicPage = this.forumStorageReader.GetRouteDataForPost(viewModel.TopicId, viewModel.PostIndex);

            return(this.RedirectToPost(topicPage));
        }
        public async Task UpdateAsync(string id, EditPostViewModel input)
        {
            var post = this.postsRepository
                       .All()
                       .FirstOrDefault(x => x.Id == id);

            post.Id         = input.Id;
            post.Title      = input.Title;
            post.Content    = input.Content;
            post.CategoryId = input.CategoryId;
            post.ModifiedOn = DateTime.UtcNow;

            await this.postsRepository.SaveChangesAsync();
        }
예제 #22
0
        private Post BuildPostEdit(EditPostViewModel model, ApplicationUser user)
        {
            var forum = _forumService.GetById(model.ForumId);

            return(new Post
            {
                Id = model.PostId,
                Title = model.Title,
                Content = model.Content,
                Created = DateTime.Now,
                User = user,
                Forum = forum
            });
        }
예제 #23
0
        private EditPostViewModel GetEditPostViewModel(IEnumerable <string> categories, Post post = null)
        {
            var model = new EditPostViewModel
            {
                AllCategories = categories
            };

            if (post != null)
            {
                model.Post = post;
            }

            return(model);
        }
예제 #24
0
 public IActionResult EditPost(EditPostViewModel model)
 {
     try
     {
         Post post = _mapper.Map <EditPostViewModel, Post>(model);
         _forumsRepository.UpdatePost(post);
         _unitOfWork.Commit();
         return(RedirectToAction(nameof(this.BrowseThreads)));
     }
     catch
     {
         return(View());
     }
 }
예제 #25
0
        public ViewResult Edit(int postId)
        {
            var model = new EditPostViewModel
            {
                Post = repository.Posts
                       .FirstOrDefault(p => p.PostId == postId),

                Categories = repository.Categories,

                Tags = repository.Tags.OrderBy(tag => tag.Name)
            };

            return(View(model));
        }
예제 #26
0
        public void Given_inValid_EditPostViewModel_When_Edit_Returns_Edit_View()
        {
            //Given
            var model = new EditPostViewModel();

            _postController.ModelState.AddModelError(string.Empty, "There is an error with your model, boy!");
            //When
            var result = _postController.Edit(model) as ViewResult;

            //Then
            Assert.NotNull(result);
            Assert.IsInstanceOf <EditPostViewModel>(result.Model);
            Assert.AreEqual(String.Empty, result.ViewName);
        }
예제 #27
0
        public ActionResult Edit(EditPostViewModel viewModel)
        {
            if (viewModel.Content.Id.HasValue)
            {
                BlogService.EditPost(viewModel.Content, viewModel.Tags);
            }
            else
            {
                viewModel.Content.AuthorId = User.UserId;
                BlogService.AddPost(User.Blogs.First().Id, viewModel.Content, viewModel.Tags);
            }

            return(Json(new ProcessResult(new { ContentId = viewModel.Content.Id })));
        }
예제 #28
0
        public async Task <ActionResult> Edit(string boton, EditPostViewModel viewModel)
        {
            if (boton.ToLower().Contains("modificar publicación"))
            {
                return(RedirectToAction("Publicar", new { id = viewModel.EditorPost.Id }));
            }

            if (ModelState.IsValid)
            {
                await ActualizarPost(viewModel.EditorPost);

                return(RedirectToAction("Details", new { id = viewModel.EditorPost.Id }));
            }
            return(View(viewModel));
        }
예제 #29
0
        public ActionResult EditPost(EditPostViewModel post, int id)
        {
            if (post != null && this.ModelState.IsValid)
            {
                var databasePost = this.posts.GetById(id);
                databasePost.PostType = post.PostType;
                databasePost.Title    = post.Title;
                databasePost.Content  = post.Content;

                var pet = this.pets.GetById(post.PetId);
                pet.PetType     = post.Pet.PetType;
                pet.Name        = post.Pet.Name;
                pet.Age         = post.Pet.Age;
                pet.Description = post.Pet.Description;
                pet.Color       = post.Pet.Color;

                var location = this.locations.GetById(post.LocationId);
                location.City           = post.Location.City;
                location.Street         = post.Location.Street;
                location.AdditionalInfo = post.Location.AdditionalInfo;

                if (post.UploadedImage != null)
                {
                    using (var memory = new MemoryStream())
                    {
                        post.UploadedImage.InputStream.CopyTo(memory);
                        var content = memory.GetBuffer();

                        var image = new Photo
                        {
                            Content       = content,
                            FileExtension = post.UploadedImage.FileName.Split(new[] { '.' }).Last()
                        };
                        this.images.Update();
                        databasePost.Gallery.Add(image);
                    }
                }

                this.pets.Update();
                this.locations.Update();
                this.posts.Update();

                this.TempData["Notification"] = "Post Edited Succesfully!";
                return(this.RedirectToAction("AllByUser"));
            }

            return(this.View(post));
        }
예제 #30
0
        public async Task <IActionResult> EditPostAsync(EditPostViewModel model)
        {
            try
            {
                var post = await _postService.GetAsync(new Guid(model.PostId));

                post.Message = model.Message;
                await _postService.EditAsync(post);
            }
            catch (Exception ex)
            {
                throw ex;
            }

            return(RedirectToAction("ViewPost", new { postId = model.PostId }));
        }
        public ActionResult EditPost(EditPostViewModel model)
        {
            if (!this.ModelState.IsValid)
            {
                return this.View(model);
            }

            this.posts.UpdatePost(model.EncodedId, model.Title, model.Content);

            this.TempData["Notification"] = "You successfully update your post.";
            return this.Redirect($"/Posts/Details/{model.EncodedId}");
        }
예제 #32
0
        public ActionResult Edit(EditPostViewModel postViewModel)
        {
            String nameFieldWithImageName = "Task.ImageName";

            String fullPath = String.Empty;
            String fileName = String.Empty;

            if (ModelState.IsValid)
            {
                HttpPostedFileBase postedFileBase = null;
                if (Request.Files.Count != 0 && Request.Files[0].FileName != String.Empty)
                {
                    postedFileBase = Request.Files[0];

                    if (!AvailableExtensions.Any(x => x.Contains(Path.GetExtension(postedFileBase.FileName))))
                    {
                        ModelState.AddModelError(nameFieldWithImageName, "File has invalid extension");
                    }
                    else
                    {
                        fileName = String.Format("{0}{1}", Guid.NewGuid(), Path.GetExtension(postedFileBase.FileName));
                        fullPath = Path.Combine(Server.MapPath(PathImages), fileName);
                    }
                }

                if (ModelState.IsValid)
                {
                    try
                    {
                        if (postedFileBase != null)
                        {
                            if (postViewModel.Task.TaskId != 0)
                            {
                                String nameOldImage = _todoService.GetTaskById(postViewModel.Task.TaskId).ImageName;
                                String oldFilePath = String.Format("{0}{1}", Server.MapPath(PathImages), nameOldImage);

                                if (System.IO.File.Exists(oldFilePath))
                                {
                                    System.IO.File.Delete(oldFilePath);
                                }

                            }
                            postedFileBase.SaveAs(fullPath);
                            postViewModel.Task.ImageName = fileName;
                        }
                        else
                        {
                            //if Add new task without image - ImageName=null
                            //else old imagename
                            postViewModel.Task.ImageName = postViewModel.Task.TaskId == 0 ? null : _todoService.GetTaskById(postViewModel.Task.TaskId).ImageName;
                        }

                        if (postViewModel.Task.TaskId == 0)
                        {
                            _todoService.AddTask(postViewModel.Task, postViewModel.TaskTagsId);
                        }
                        else
                        {
                            _todoService.UpdateTask(postViewModel.Task, postViewModel.TaskTagsId);
                        }

                        return RedirectToAction("Index", new { state = "success" });
                    }
                    catch (FileLoadException)
                    {
                        ModelState.AddModelError(nameFieldWithImageName, "File is not loaded");

                    }
                    catch (DirectoryNotFoundException)
                    {
                        ModelState.AddModelError(nameFieldWithImageName, "DirectoryNotFound");
                    }

                }

            }

            EditViewModel viewModel = new EditViewModel();
            viewModel.Performers = _todoService.GetPerformerList().ToList();
            viewModel.Statuses = _todoService.GetStatusList().ToList();
            viewModel.Priorities = _todoService.GetPriorityList().ToList();
            viewModel.Tags = _todoService.GetTagList().ToList();
            viewModel.Task = postViewModel.Task;
            viewModel.PathToImage = Url.Content(PathImages);
            viewModel.TagsSelected = postViewModel.TaskTagsId;

            return View(viewModel);
        }