예제 #1
0
        public async Task <IActionResult> Update([FromForm] UpdatePostDto updatePostDto)
        {
            UpdatePostViewModel updatePostViewModel = CustomMapper.GetUpdatePostViewModel(updatePostDto);

            if (updatePostDto.PhotoFile != null)
            {
                var post = await _postService.GetById(updatePostDto.Id);

                string existingFilePath = post.HeaderPhotoPath;

                try
                {
                    _fileService.UpdateLocalFile(updatePostDto.PhotoFile, existingFilePath);
                }
                catch (IOException) { }
            }

            var result = await _postService.Update(updatePostViewModel);

            if (result.IsValid)
            {
                return(Ok());
            }

            return(BadRequest(result.Errors));
        }
예제 #2
0
        public ActionResult UpdatePost(UpdatePostViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(PartialView(model));
            }

            var image = model.Image;

            byte[] fileBytes = {};
            if (model.Image != null)
            {
                using (var ms = new MemoryStream())
                {
                    image.CopyTo(ms);
                    fileBytes = ms.ToArray();
                }
            }

            var isPostUpdated = _historyRepository.UpdatePost(new PostViewModel
            {
                PostId       = model.PostId,
                Title        = model.Title,
                Content      = model.Content,
                PostDate     = model.PostDate,
                TimePeriodId = model.SelectedPeriodId,
                EventTypes   = model.SelectedEventTypes ?? new List <int>(),
                FigureTypes  = model.SelectedFigureTypes ?? new List <int>(),
                Image        = Convert.ToBase64String(fileBytes)
            });

            return(Json(new { success = isPostUpdated }));
        }
 public IActionResult Update(Guid id, [Bind("Post,SelectedTags")] UpdatePostViewModel viewModel)
 {
     if (ModelState.IsValid)
     {
         var post = this.postRepository.GetById(id);
         if (null != post && id == post.Id)
         {
             post.UpdateFrom(viewModel.Post);
             this.postRepository.Update(post);
             var postTags = this.postRepository.GetPostTags(id);
             this.postRepository.Remove(postTags);
             this.postRepository.SaveChanges();
             foreach (var selectedTag in viewModel.SelectedTags)
             {
                 var tag     = this.tagRepository.GetById(Guid.Parse(selectedTag));
                 var postTag = new PostTag(post, tag);
                 this.postRepository.AddPostTag(postTag);
             }
             this.postRepository.SaveChanges();
             return(RedirectToAction("List"));
         }
         else
         {
             return(NotFound());
         }
     }
     else
     {
         return(View(viewModel));
     }
 }
예제 #4
0
        public async Task <IActionResult> ConfirmEditPost(UpdatePostViewModel post)
        {
            var postDto = Mapper.Map <PostDto>(post);

            postDto.User = User.CreateUserDto();
            await _postManager.UpdatePost(postDto);

            return(RedirectToAction("Index", "Home"));
        }
예제 #5
0
        public ActionResult EditPost(int id)
        {
            UpdatePostViewModel model = ModelMapper.ConvertToUpdatePostViewModel(_postService.Get(id));

            ViewBag.CategoryList = ToSelectList(ModelMapper.ConvertToViewModel(_categoryService.GetAll(), true), model.Categories);
            ViewBag.LabelList    = ToSelectList(ModelMapper.ConvertToViewModel(_labelService.GetAll()), model.Labels);

            return(View(model));
        }
예제 #6
0
        public ActionResult Update(UpdatePostViewModel modelForUpdate)
        {
            var validationText = modelForUpdate.MessageStringContent.Replace("script>", "text>");
            var postDto        = Mapper.Map <UpdatePostDto>(modelForUpdate);

            postDto.MessageStringContent = validationText;
            _postService.UpdatePost(postDto);
            var topicId = _postService.GetTopicIdByPostId(modelForUpdate.PostId);

            return(RedirectToAction("Item", "Topic", new { Id = topicId }));
        }
예제 #7
0
        public async Task <IActionResult> Edit(UpdatePostViewModel post)
        {
            var command = _mapper.Map <UpdatePostCommand>(post);
            var result  = await _mediator.Send(command);

            if (result.Succeeded)
            {
                return(Ok(result));
            }
            return(BadRequest(result.ToString()));
        }
예제 #8
0
        public async Task Put(Guid id, [FromBody] UpdatePostDto updatePostDto)
        {
            var updatePostViewModel = new UpdatePostViewModel()
            {
                InitialPostId = id,
                Text          = updatePostDto.Text,
                Title         = updatePostDto.Title
            };

            await _postService.UpdatePostAsync(updatePostViewModel);
        }
예제 #9
0
        public async Task ConfirmEditPost_UpdateModel_Ok()
        {
            var model = new UpdatePostViewModel {
                Id = 1, Title = "Test"
            };
            var user = _controller.SetupUser(1);

            await _controller.ConfirmEditPost(model);

            _postManager.Verify(repo => repo.UpdatePost(It.Is <PostDto>(blog =>
                                                                        blog.Title == "Test" && blog.Id == 1 && blog.User.Id == user.Id)), Times.Once);
        }
예제 #10
0
        public async Task <IActionResult> EditPost(UpdatePostViewModel post)
        {
            var postDto = await _postManager.GetPost(post.Id);

            if (postDto == null)
            {
                return(NotFound());
            }
            var model = Mapper.Map <UpdatePostViewModel>(postDto);

            return(View(model));
        }
예제 #11
0
 public ActionResult EditPost(UpdatePostViewModel model)
 {
     try
     {
         model.CoverPhoto = model.PhotoFile == null? model.CoverPhoto : this.WriteToFile(model.PhotoFile);
         _postService.Update(ModelMapper.ConvertToModel(model));
     }
     catch (Exception ex)
     {
         throw ex;
     }
     return(RedirectToAction(nameof(Index)));
 }
예제 #12
0
        public ActionResult Edit(UpdatePostViewModel model)
        {
            var post = GameGram.Domain.BLL.PostBLL.Find(model.Id);

            if (post != null)
            {
                post.Caption = model.Caption;
                post.Content = model.Content;
                GameGram.Domain.BLL.PostBLL.Update(post);
            }

            return(RedirectToAction("Index"));
        }
예제 #13
0
        public IActionResult UpdatePost(int id)
        {
            ArtGalleryContext   GetPost = new ArtGalleryContext();
            UpdatePostViewModel EVM     = new UpdatePostViewModel();
            var TargetPost  = GetPost.Post.Include(A => A.PostTags).ThenInclude(A => A.Tag).Include(A => A.Images).Where(A => A.PostId == id).FirstOrDefault();
            var SlideImages = GetPost.Image.Where(A => A.PostId == id).Where(A => A.IsPrimary == false).ToList();
            var file        = GetPost.Files.Where(A => A.PostId == id).ToList();

            EVM.Post = TargetPost;
            EVM.ForEditSlideImages = SlideImages;
            EVM.ForEditFile        = file;
            return(View(EVM));
        }
예제 #14
0
        public async Task <bool> ModifyPost(string CID, string PID, UpdatePostViewModel model)
        {
            var com = await GetCommunity(CID);

            var post = com.Posts.SingleOrDefault(x => x.Id == PID);

            com.Posts.Remove(post);
            post.Title       = model.Title;
            post.Description = model.Description;
            com.Posts.Add(post);
            var result = await _Community.ReplaceOneAsync(x => x.Id == CID, com);

            return(result.IsAcknowledged);
        }
        public IActionResult Update(Guid id)
        {
            var post = this.postRepository.GetById(id);

            if (null != post)
            {
                var tags      = this.tagRepository.GetAll();
                var viewModel = new UpdatePostViewModel(post, tags);
                return(View(viewModel));
            }
            else
            {
                return(NotFound());
            }
        }
예제 #16
0
        public async void Update_Post_By_Id_Throws_Given_Dto_Values_Are_Empty()
        {
            IPostService postService = new PostService(_mockPostRepository.Object);

            var initialPost = new Post(new Content(PostText), new Title(PostTitle), Guid.NewGuid());

            UpdatePostViewModel viewModel = new UpdatePostViewModel
            {
                Text          = "",
                Title         = null,
                InitialPostId = initialPost.Id
            };

            await Assert.ThrowsAsync <ArgumentNullException>(async() => await postService.UpdatePostAsync(viewModel));
        }
예제 #17
0
        public ActionResult Edit(Guid?id)
        {
            var post = GameGram.Domain.BLL.PostBLL.Find(id);

            if (post != null)
            {
                UpdatePostViewModel model = new UpdatePostViewModel()
                {
                    Id      = post.Id,
                    Caption = post.Caption,
                    Content = post.Content
                };
                return(View(model));
            }
            return(RedirectToAction("Add"));
        }
예제 #18
0
        // GET: Admin/Post/Edit/5
        public async Task <ActionResult> Edit(Guid id)
        {
            var post = await db.Posts.FindAsync(id);

            var model = new UpdatePostViewModel
            {
                Id          = post.Id,
                CategoryId  = post.CategoryId,
                PostContent = post.PostContent,
                UserId      = post.UserId,
                PostTitle   = post.PostTitle,
                Decsription = post.Decsription
            };

            ViewBag.CategoryId = new SelectList(db.Categories, "Id", "CategoryName", model.CategoryId);
            return(View(model));
        }
예제 #19
0
        public async Task <IActionResult> Edit(int?id)
        {
            var viewModel = new UpdatePostViewModel();



            viewModel.SelCategories = (await _blogRepository.GetCategories()).ToList()
                                      .Select(a => new SelectListItem()
            {
                Value = a.Name,               //a.Id.ToString(),
                Text  = a.Name
            }).DistinctBy(x => x.Text).ToList();

            //viewModel.SelectedCategoriesIds = (await _blogRepository.GetCategories()).ToList().Select(x => x.Id).ToList();

            ViewData["sidebar-collapse"] = true;

            if (id == null)
            {
                viewModel.Post = new Post();

                var userId   = User.FindFirstValue(ClaimTypes.NameIdentifier); // will give the user's userId
                var userName = User.FindFirstValue(ClaimTypes.Name);           // will give the user's userName

                CustomUser applicationUser = await _userManager.GetUserAsync(User);

                string userEmail = applicationUser?.Email; // will give the user's Email

                viewModel.Post.CustomUser   = applicationUser;
                viewModel.Post.CustomUserId = userId;
                return(View(viewModel));
            }

            var post = await _blogRepository.GetPostById(id.Value);

            viewModel.SelectedCategories = post.Categories.Select(x => x.Name).ToList(); //(await _blogRepository.GetCategories()).ToList().Select(x => x.Name).ToList();

            viewModel.Post = post;

            if (post != null)
            {
                return(View(viewModel));
            }

            return(NotFound());
        }
예제 #20
0
        /// <summary>
        /// Update post
        /// </summary>
        /// <param name="viewModel">post data</param>
        /// <returns></returns>
        public async Task UpdatePostAsync(UpdatePostViewModel viewModel)
        {
            Guard.Against.GuidEmpty(viewModel.InitialPostId, nameof(viewModel.InitialPostId));
            Guard.Against.Null(viewModel, nameof(viewModel));

            if (string.IsNullOrEmpty(viewModel.Text) && string.IsNullOrEmpty(viewModel.Title))
            {
                throw new ArgumentNullException("At least 1 value shouldn't be empty");
            }

            var post = await _postRepository.GetByIdAsync(viewModel.InitialPostId);

            Guard.Against.PostNotExists(post, viewModel.InitialPostId);

            post.Content.Text = viewModel.Text;
            post.Title.Text   = viewModel.Title;

            await _postRepository.UpdateAsync(post);
        }
예제 #21
0
        public async Task <IActionResult> UpdatePost(UpdatePostViewModel viewModel)
        {
            if (!ModelState.IsValid)
            {
                return(View("Edit", viewModel));
            }

            var existing = await _blogRepository.GetPostById(viewModel.Post.Id) ?? viewModel.Post;

            //string categories = Request.Form["categories"];

            //var myCategories = categories.Split(",", StringSplitOptions.RemoveEmptyEntries).Select(c => c.Trim().ToLowerInvariant()).ToList();

            existing.Categories.ToList().ForEach(x =>
            {
                existing.Categories.Remove(x);
            });

            if (viewModel.SelectedCategories != null)
            {
                foreach (string category in viewModel.SelectedCategories)
                {
                    Category cat = new Category
                    {
                        Name = category
                    };
                    existing.Categories.Add(cat);
                }
            }

            existing.Title       = viewModel.Post.Title.Trim();
            existing.Slug        = !string.IsNullOrWhiteSpace(viewModel.Post.Slug) ? viewModel.Post.Slug.Trim() : Models.Post.CreateSlug(viewModel.Post.Title);
            existing.IsPublished = viewModel.Post.IsPublished;
            existing.Content     = viewModel.Post.Content.Trim();
            existing.Excerpt     = viewModel.Post.Excerpt.Trim();

            await SaveFilesToDisk(existing);

            await _blogRepository.SavePost(existing);

            return(Redirect(existing.GetEncodedLink()));
        }
예제 #22
0
        public async Task <ActionResult> Edit(UpdatePostViewModel model)
        {
            if (ModelState.IsValid)
            {
                var post = await db.Posts.FindAsync(model.Id);

                post.PostContent = model.PostContent;
                post.CategoryId  = model.CategoryId;
                post.UserId      = User.Identity.GetUserId();
                post.UpdatedDate = DateTime.Now;
                post.PostTitle   = model.PostTitle;
                post.Decsription = model.Decsription;

                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }
            ViewBag.CategoryId = new SelectList(db.Categories, "Id", "CategoryName", model.CategoryId);
            return(View());
        }
예제 #23
0
        public async void Update_Post_By_Id_Throws_Post_Doesnot_Exist()
        {
            IPostService postService = new PostService(_mockPostRepository.Object);

            var initialPost = new Post(new Content(PostText), new Title(PostTitle), Guid.NewGuid());

            UpdatePostViewModel viewModel = new UpdatePostViewModel
            {
                Text  = "New Text",
                Title = "New Title"
            };

            Post post = new Post(new Content(PostText), new Title(PostTitle), Guid.NewGuid());

            viewModel.InitialPostId = initialPost.Id;
            _mockPostRepository.Setup(repo => repo.GetByIdAsync(It.Is <Guid>(id => id == post.Id))).ReturnsAsync(post);
            _mockPostRepository.Setup(repo => repo.UpdateAsync(post)).Returns(Task.CompletedTask);


            await Assert.ThrowsAsync <PostNotExistsException>(async() => await postService.UpdatePostAsync(viewModel));
        }
예제 #24
0
        public async Task <IActionResult> UpdatePost([FromForm] UpdatePostViewModel viewModel)
        {
            var callerId = await _authHelper.GetCallerId(_caller);

            if (await _authHelper.CheckIfUserIsBanned(callerId))
            {
                return(new BadRequestObjectResult(
                           new
                {
                    Message = "User currently bannend",
                    StatusCodes.Status403Forbidden
                }));
            }

            var result = await _postRepository.UpdatePostAsync(new UpdatePost(viewModel, callerId));

            var post = await _postRepository.GetPostById(viewModel.Id, callerId);

            post.Files = await _postFilesUploadHelper.ReplacePostFiles(post.Files, viewModel.Files, post.Id);

            await _filesRepository.UpdatePostImagesAsync(post.Files, post.Id);

            if (result > 0)
            {
                return(new OkObjectResult(new
                {
                    Message = " ai fost ba in stare sa faci un post klumea bine ba usere ba",
                    post,
                    result
                }));
            }

            return(new BadRequestObjectResult(
                       new
            {
                result,
                StatusCodes.Status403Forbidden
            }));
        }
예제 #25
0
        public ActionResult AddPost()
        {
            var addPostViewModel = new UpdatePostViewModel
            {
                PeriodsList = _historyRepository.GetTimePeriods().Select(p => new SelectListItem
                {
                    Text  = p.Name,
                    Value = p.TimePeriodId.ToString()
                }).ToList(),
                FigureTypes = _historyRepository.GetFigureTypes().Select(p => new SelectListItem
                {
                    Text  = p.FigureTypeName,
                    Value = p.FigureTypeId.ToString()
                }).ToList(),
                EventTypes = _historyRepository.GetEventTypes().Select(p => new SelectListItem
                {
                    Text  = p.EventTypeName,
                    Value = p.EventTypeId.ToString()
                }).ToList()
            };

            return(PartialView(addPostViewModel));
        }
예제 #26
0
        public ActionResult UpdatePost(int postId)
        {
            var post = _historyRepository.GetPostById(postId);

            if (post == null)
            {
                return(Json(new { success = false }));
            }

            var addPostViewModel = new UpdatePostViewModel
            {
                PeriodsList = _historyRepository.GetTimePeriods().Select(p => new SelectListItem
                {
                    Text  = p.Name,
                    Value = p.TimePeriodId.ToString()
                }).ToList(),
                FigureTypes = _historyRepository.GetFigureTypes().Select(p => new SelectListItem
                {
                    Text  = p.FigureTypeName,
                    Value = p.FigureTypeId.ToString()
                }).ToList(),
                EventTypes = _historyRepository.GetEventTypes().Select(p => new SelectListItem
                {
                    Text  = p.EventTypeName,
                    Value = p.EventTypeId.ToString()
                }).ToList(),
                PostId              = post.PostId,
                Title               = post.Title,
                Content             = post.Content,
                SelectedPeriodId    = post.TimePeriodId,
                PostDate            = post.PostDate,
                SelectedEventTypes  = post.EventTypes,
                SelectedFigureTypes = post.FigureTypes
            };

            return(PartialView(addPostViewModel));
        }
예제 #27
0
        public IActionResult UpdatePost([FromRoute] int id, [FromBody] UpdatePostViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest("Bad request"));
            }

            var dbPost = _database.Posts.FirstOrDefault(x => x.Id == id);

            if (dbPost == null)
            {
                return(BadRequest("Invalid....."));
            }

            if (dbPost.Deleted == true)
            {
                return(BadRequest("fdjkhfkjshdkf"));
            }

            dbPost.Status = model.Status;
            _database.Posts.Update(dbPost);
            _database.SaveChanges();
            return(Ok(dbPost));
        }
        public async Task <IActionResult> ModifyPost([FromRoute] string CID, [FromRoute] string PID, [FromBody] UpdatePostViewModel post)
        {
            var result = await _MongocourseService.ModifyPost(CID, PID, post);

            if (result)
            {
                return(Ok(new { status = 1, Message = "Successfully Modified" }));
            }
            return(BadRequest());
        }
예제 #29
0
        public IActionResult UpdatePost([FromBody] UpdatePostViewModel model)
        {
            var user = userRepository.GetApplicationUserByUsername(User.Identity.Name, true);

            if (user == null)
            {
                return(Unauthorized());
            }
            var post = postRepository.GetPostByPostId(model.PostId, true, new string[] { "CurrentVersion", "PostTags", "ExternalFiles" });

            if (post == null)
            {
                return(NotFound());
            }
            try {
                bool errors = false;
                if (model.CurrentVersion != null)
                {
                    var postVersion = postRepository.GetPostVersionByPostVersionId((int)model.CurrentVersion);
                    if (postVersion == null)
                    {
                        errors = true;
                        ModelState.AddModelError("PostVersion", "PostVersion not found");
                    }
                    post.CurrentVersion = postVersion;
                }
                if (model.AliasSet)
                {
                    post.Alias = model.Alias;
                }
                if (model.Published != null)
                {
                    post.Published = (bool)model.Published;
                    if (post.FirstPublished == null)
                    {
                        post.FirstPublished = DateTime.Now;
                    }
                }
                if (model.List != null)
                {
                    post.List = (bool)model.List;
                }
                if (model.PostTags != null)
                {
                    var newTags = new List <PostTag>();
                    var allTags = tagRepository.GetTags().ToDictionary(x => x.TagId, x => x);
                    foreach (var tag in model.PostTags)
                    {
                        if (!allTags.ContainsKey(tag))
                        {
                            return(BadRequest());
                        }
                        newTags.Add(new PostTag()
                        {
                            PostId = post.PostId, TagId = tag
                        });
                    }
                    post.PostTags = newTags;
                }
                if (errors)
                {
                    return(BadRequest(ModelStateHelper.GetModelStateErrors(ModelState)));
                }
                postRepository.UpdatePost(post);
                return(Ok(Conversions.PostViewModelFromPost(post)));
            }
            catch (Exception) {
                return(BadRequest());
            }
        }
예제 #30
0
 public async Task <ValidationResult> Update(UpdatePostViewModel updatePostViewModel)
 {
     return(await _mediator.Send(
                _mapper.Map <UpdatePostCommand>(updatePostViewModel)));
 }