public async Task <IActionResult> Update([FromRoute] Guid postId, [FromBody] UpdatePostRequest postRequest)
        {
            var ifUserOwnsPost = await _postService.UserOwnsPostAsync(postId, HttpContext.GetUserId());

            if (!ifUserOwnsPost)
            {
                return(Unauthorized(
                           new
                {
                    error = "You don't own the post"
                }));
            }

            var post = await _postService.GetPostByIdAsync(postId);

            post.Name = postRequest.Name;

            var isUpdated = await _postService.UpdatePostAsync(post);

            if (isUpdated)
            {
                return(Ok(post));
            }
            return(NotFound());
        }
Exemple #2
0
        public async Task <int> UpdatePost(UpdatePostRequest request, ApplicationUser applicationUser)
        {
            Post post = await _context.Posts.FindAsync(request.PostID);

            if (post == null)
            {
                throw new Exception("Bai post khong ton tai");
            }

            // Kiểm tra user có sở hữu bài post không
            post = _context.Posts.Where(x => x.PostID == request.PostID).FirstOrDefault();
            if (post.Id != applicationUser.Id)
            {
                throw new Exception("Ban khong so huu bai post do do khong update duoc");
            }

            post.Content = request.Content;
            post.Title   = request.Title;
            post.Caption = request.Caption;

            //if (post.ImageFileName != request.ImageFileName.FileName)
            //{

            //}


            // Thực hiện xoá bài post và lưu

            _context.Update(post);
            var result = await _context.SaveChangesAsync();

            return(result);
        }
        public async Task <IActionResult> Update([FromQuery] Guid postId, [FromBody] UpdatePostRequest request)
        {
            var userOwnsPost = await _postService.UserOwnsPostAsync(postId, HttpContext.GetUserId());

            if (!userOwnsPost)
            {
                return(BadRequest(new { Error = "You do not own this post." }));
            }

            var post = await _postService.GetPostByIdAsync(postId);

            post.Name = request.Name;

            var updated = await _postService.UpdatePostAsync(post);

            var postResponse = new PostResponse
            {
                Id   = post.Id,
                Name = post.Name
            };

            if (updated)
            {
                return(Ok(new Response <PostResponse>(postResponse)));
            }

            return(NotFound());
        }
Exemple #4
0
        public async Task <BaseResponseDto <bool> > Handle(UpdatePostRequest request, CancellationToken cancellationToken)
        {
            BaseResponseDto <bool> response = new BaseResponseDto <bool>();

            try
            {
                var post = await _repositoryWrapper.Post.Find(request.Id);

                if (post != null)
                {
                    post.Body  = request.Body;
                    post.Title = request.Title;
                    _repositoryWrapper.Post.Update(post);
                    if (await _repositoryWrapper.SaveChangesAsync())
                    {
                        response.Data = true;
                    }
                    else
                    {
                        response.Errors.Add("Veri tabanı kayıt esnasında bir sorun oluştu.");
                    }
                }
                else
                {
                    response.Errors.Add("Böyle bir post bulunamadı.");
                }
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, ex.InnerException.Message);
                response.Errors.Add(ex.InnerException.Message);
                response.Errors.Add("Post güncellenirken bir hata oluştu.");
            }
            return(response);
        }
Exemple #5
0
        public async Task <IActionResult> EditAsync([FromRoute] int id, [FromBody] UpdatePostRequest model)
        {
            if (CurrentUser == null)
            {
                return(BadRequest(new { ErrorMessage = "Unauthorized" }));
            }

            if (!model.AuthorId.Equals(CurrentUser.Id))
            {
                return(BadRequest(new { ErrorMessage = "You are not an author of the post." }));
            }


            var post = await _postsService.GetPostAsync(id);

            var updatedModel = _mapper.Map(model, post);

            // TODO Fix if possible
            updatedModel.Author = CurrentUser;
            // - - -
            _postsService.Update(updatedModel);
            var tags = _mapper.Map <List <Tag> >(model.Tags);
            await _postsTagsRelationsService.AddTagsToExistingPost(post.Id, post.PostsTagsRelations.ToList(), tags);

            var postModel = await _postsService.GetPostAsync(id);

            var mappedPost = _mapper.Map <PostViewResponse>(postModel);

            return(Ok(mappedPost));
        }
Exemple #6
0
        public async Task <Response> UpdateAsync(string slug, UpdatePostRequest request)
        {
            var query = _context.Posts.AsQueryable();

            query = ApplyInclude(query);

            var post = await query.SingleOrDefaultAsync(i => i.Slug == slug);

            if (post == null)
            {
                return(null);
            }

            _context.Posts.Attach(post);
            _context.Posts.Update(post);

            _mapper.Map(request.BlogPost, post);

            _context.Update(post);
            await _context.SaveChangesAsync();

            var response = _mapper.Map <PostModel>(post);

            return(new PostResponse
            {
                BlogPost = response
            });
        }
Exemple #7
0
        public async Task <IActionResult> Update([FromRoute] Guid postId, [FromBody] UpdatePostRequest request)
        {
            var userOwnsPost = await _postService.UserOwnsPostAsync(postId, HttpContext.GetUserId());

            if (!userOwnsPost)
            {
                return(BadRequest(new { error = "You do now own this post." }));
            }

            IdentityUser author = await _userManager.FindByIdAsync(HttpContext.GetUserId());

            var post = await _postService.GetPostByIdAsync((postId));

            post.Title   = request.Title;
            post.UserId  = HttpContext.GetUserId();
            post.Author  = author.UserName;
            post.Date    = request.Date;
            post.Image   = request.Image;
            post.Content = request.Content;
            post.Tags    = request.Tags;

            var updated = await _postService.UpdatePostAsync(post);

            if (updated)
            {
                return(Ok());
            }

            return(NotFound());
        }
Exemple #8
0
        public async Task <IActionResult> Update([FromRoute] Guid postId, [FromBody] UpdatePostRequest request)
        {
            var userOwnsPost = await _postService.UserOwnsPost(postId, HttpContext.GetUserId());

            if (!userOwnsPost)
            {
                return(BadRequest(new
                {
                    error = "Você não tem permissão para atualizar este post."
                }));
            }

            var post = await _postService.GetPostById(postId);

            //atualizando o nome que veio do Body da request
            post.Name = request.Name;

            var updated = await _postService.UpdatePost(post);

            if (!updated)
            {
                return(NotFound());
            }
            return(Ok(post));
        }
Exemple #9
0
        public async Task <ActionResult <UpdatePostResponse> > UpdatePost([FromBody] UpdatePostRequest formData, string id)
        {
            var context = HttpContext.User.Identity.Name;
            var result  = await _postHandler.UpdatePost(formData, id, context);

            switch (result.StatusCode)
            {
            case ContractsService.StatusCode.PermissionDenied:
                return(BadRequest(result.ErrorMessage));

            case ContractsService.StatusCode.NotFound:
                return(BadRequest(result.ErrorMessage));

            case ContractsService.StatusCode.InvalidArgument:
                return(BadRequest(result.ErrorMessage));

            case ContractsService.StatusCode.Internal:
                return(BadRequest(result.ErrorMessage));

            case ContractsService.StatusCode.Ok:
                return(result);

            default:
                return(BadRequest("Unknown error"));
            }
        }
        public async Task <IActionResult> Update([FromRoute] Guid postId, [FromBody] UpdatePostRequest request)
        {
            var post = await _postService
                       .GetPostByIdAsync(postId)
                       .ConfigureAwait(false);

            if (post == null)
            {
                return(NotFound());
            }

            post.Title       = request?.Title;
            post.Content     = request?.Content;
            post.Attachments = request?.Attachments;

            var updated = await _postService
                          .UpdatePostAsync(post)
                          .ConfigureAwait(false);

            if (!updated)
            {
                return(NotFound());
            }

            var postResponse = new Response <PostResponse>(
                _mapper.Map <PostResponse>(post));

            return(Ok(postResponse));
        }
Exemple #11
0
        public async Task <IActionResult> Update([FromRoute] Guid postId, [FromBody] UpdatePostRequest updateRequest)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var isUserOwnerOfPost = await _postRepository.IsUserOwnerOfPostAsync(postId, HttpContext.GetUserId());

            if (!isUserOwnerOfPost)
            {
                return(BadRequest(new { error = $"User can not update post {postId}" }));
            }

            var post = await _postRepository.GetPostByIdAsync(postId);

            var updated = await _postRepository.UpdatePostAsync(_mapper.Map(updateRequest, post));

            if (updated)
            {
                return(Ok(_mapper.Map <PostResponse>(post)));
            }

            return(NotFound());
        }
        /// <inheritdoc />
        Task <ApiResponse <PostResponse> > ITweetbookAPI.UpdateAsync(Guid id, UpdatePostRequest request)
        {
            var arguments = new object[] { id, request };
            var func      = requestBuilder.BuildRestResultFuncForMethod("UpdateAsync", new Type[] { typeof(Guid), typeof(UpdatePostRequest) });

            return((Task <ApiResponse <PostResponse> >)func(Client, arguments));
        }
Exemple #13
0
        public async Task <IActionResult> UpdatePost([FromBody] UpdatePostRequest request)
        {
            var post = await _ctx.Posts.Include(p => p.Author)
                       .FirstOrDefaultAsync(p => p.Id == request.PostId);

            if (post.Author.Email != _userHelper.Email)
            {
                return(Forbid());
            }

            post.Species = await _ctx.Species.FirstAsync(s => s.Id == request.Species.Id);

            post.Breed = await _ctx.Breeds.FirstAsync(b => b.Id == request.Breed.Id);

            post.Color = await _ctx.Colors.FirstAsync(s => s.Id == request.Color.Id);

            post.PostType = request.PostType;
            post.Size     = request.Size;
            post.Content  = request.Content;
            post.LostTime = request.LostTime;
            post.Location = request.Location;

            if (request.ImageSource != null)
            {
                post.ImageSource = request.ImageSource;
                _fileHelper.SaveFile(post.Id, post.ImageSource, ObjectType.Post);
            }

            _ctx.Posts.Update(post);
            await _ctx.SaveChangesAsync();

            return(Ok());
        }
        public Task <string> AddPostAsync(string blogid, string username, string password, Post post, bool publish)
        {
            EnsureUser(username, password);

            return(TryExecuteAsync(async() =>
            {
                var cids = await GetCatIds(post.categories);
                if (cids.Length == 0)
                {
                    throw new ArgumentOutOfRangeException(nameof(post.categories));
                }

                var req = new UpdatePostRequest
                {
                    Title = post.title,
                    Slug = post.wp_slug ?? ToSlug(post.title),
                    EditorContent = post.description,
                    Tags = post.mt_keywords?.Split(','),
                    CategoryIds = cids,
                    ContentLanguageCode = "en-us",
                    IsPublished = publish,
                    EnableComment = true,
                    IsFeedIncluded = true,
                    ExposedToSiteMap = true,
                    PublishDate = DateTime.UtcNow
                };

                var p = await _postManageService.CreateAsync(req);
                return p.Id.ToString();
            }));
        }
        public async Task <IActionResult> Update([FromRoute] Guid postId, [FromBody] UpdatePostRequest postRequest)
        {
            var userOwnsPost = await _postService.UserOwnsPostAsync(postId, HttpContext.GetUserId());

            if (!userOwnsPost)
            {
                return(BadRequest(new { Error = "Yo do not own this post" }));
            }

            var post = await _postService.GetPostByIdAsync(postId);

            post.Name = postRequest.Name;

            var updated = await _postService.UpdatePostAsync(post);

            if (updated)
            {
                return(Ok(new Response <PostResponse>(_mapper.Map <PostResponse>(post))));
            }

            /*return Ok(new PostResponse
             * {
             *  Name = post.Name,
             *  Id = post.Id,
             *  UserId = post.UserId,
             *  Tags = post.Tags.Select(t => new TagResponse {Name = t.TagName})
             * });*/

            return(NotFound());
        }
        public async Task <IActionResult> Update(UpdatePostRequest contract, CancellationToken cancellationToken)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(new ResponseMessage {
                    Message = "One or more validation errors occurred."
                }));
            }

            var user = (SimpleBlogAPI.Entities.User)HttpContext.Items["User"];
            var post = _mapper.Map <PostDTO>(contract);

            post.UserId = user.Id;
            bool result = await _postService.Update(post, cancellationToken);

            if (!result)
            {
                return(BadRequest(new ResponseMessage {
                    Message = "Post hasn't been updated."
                }));
            }
            return(Ok(new ResponseMessage {
                Message = "Post has been updated."
            }));
        }
        public IActionResult Update([FromRoute] string noteId, [FromBody] UpdatePostRequest request)
        {
            if (request == null)
            {
                return(BadRequest());
            }
            var userOwnsPost = _noteService.UserOwnsNoteAsync(noteId, HttpContext.GetUserId());

            if (!userOwnsPost)
            {
                return(BadRequest(new { error = "Post not found" }));
            }


            //var note=new Note{Id=noteId,Tag=request.Tag,Title=request.Title,Post=request.Post};
            var note = _noteService.GetNoteById(noteId);

            if (note == null)
            {
                return(NotFound());
            }
            note.Tag   = request.Tag;
            note.Title = request.Title;
            note.Post  = request.Post;

            var updateSuccess = _noteService.UpdateNote(note);

            if (!updateSuccess)
            {
                return(NotFound());
            }
            return(Ok(note));
        }
        public async Task <IActionResult> Update([FromRoute] Guid postId, [FromBody] UpdatePostRequest postRequest)
        {
            var userOwnsPost = await this.postService.UserOwnsPostAsync(HttpContext.GetUserId(), postId);

            if (!userOwnsPost)
            {
                return(BadRequest(new { error = "You do not own this post" }));
            }

            var post = await this.postService.GetAsync(postId);

            post.Name = postRequest.Name;
            post.Tags = postRequest.Tags.Select(tagName => new PostTag {
                TagName = tagName, PostId = post.Id
            }).ToList();

            if (!await this.postService.UpdateAsync(post))
            {
                return(NotFound());
            }

            return(Ok(new PostResponse
            {
                Id = post.Id,
                Name = post.Name,
                Tags = post.Tags.Select(postTag => postTag.TagName)
            }));
        }
        public ActionResult <UpdatePostResponse> Update([FromBody] UpdatePostRequest request)
        {
            request.CommanderID = User.GetUserId();
            var result = _postService.Update(request);

            return(result);
        }
Exemple #20
0
        /// <summary>
        /// This method updates post.
        /// </summary>
        /// <param name="request">UpdatePostRequest.</param>
        /// <param name="postId">PostId.</param>
        /// <param name="context">CurrentUserId.</param>
        /// <returns>UpdatePostResponse.</returns>
        public async Task <UpdatePostResponse> UpdatePost(UpdatePostRequest request, string postId, string context)
        {
            var user = await _userManager.GetUser(context);

            if (!request.IsValid())
            {
                return(new UpdatePostResponse()
                {
                    StatusCode = StatusCode.InvalidArgument, ErrorMessage = "Empty argument provided",
                });
            }
            var post = await _postManager.GetPostById(postId);

            if (post == null)
            {
                return(new UpdatePostResponse()
                {
                    StatusCode = StatusCode.NotFound, ErrorMessage = "Post not found",
                });
            }
            if (post.Author.Id != user.Id)
            {
                return(new UpdatePostResponse()
                {
                    StatusCode = StatusCode.PermissionDenied, ErrorMessage = "Unauthorized user to update post",
                });
            }
            Post updatedPost = new Post()
            {
                Id        = post.Id, Title = request.Title, Body = request.Body, Author = post.Author,
                CreatedAt = post.CreatedAt, UpdatedAt = DateTime.Now, Likes = post.Likes,
            };

            var updated = await _postManager.UpdatePost(updatedPost);

            if (!updated)
            {
                return(new UpdatePostResponse()
                {
                    StatusCode = StatusCode.Internal, ErrorMessage = "Internal Error! Couldn't update post",
                });
            }

            var singleCached = await _cacheProcessor.UpdatePostStringAsync(updatedPost.Id, updatedPost);

            var cached = await _cacheProcessor.UpdateUserPostStringAsync(user.Id, updatedPost);

            if (!cached || !singleCached)
            {
                return(new UpdatePostResponse()
                {
                    StatusCode = StatusCode.Internal, ErrorMessage = "Internal Error! Couldn't Cache post"
                });
            }

            return(new UpdatePostResponse()
            {
                StatusCode = StatusCode.Ok, Post = ConvertToPostResponse(updatedPost),
            });
        }
        public async Task <IActionResult> Update([FromRoute] Guid postId, [FromBody] UpdatePostRequest postRequest)
        {
            var userOwnsPost = await _postService.UserOwnsPostAsync(postId, HttpContext.GetUserId());

            if (!userOwnsPost)
            {
                return(BadRequest(new
                {
                    error = "You do not own this post"
                }));
            }

            var post = await _postService.GetPostByIdAsync(postId);

            post.Name = postRequest.Name;

            var updated = await _postService.UpdatePostAsync(post);

            if (updated)
            {
                return(Ok(new Response <PostResponse>(
                              _mapper.Map <PostResponse>(post))));
            }

            return(NotFound());
        }
Exemple #22
0
        public async Task <IActionResult> Update([FromRoute] Guid id, [FromBody] UpdatePostRequest newPost)
        {
            string userId       = HttpContext.GetUserId();
            var    userOwnsPost = await service.UserOwnsPostAsync(id, userId);

            if (!userOwnsPost)
            {
                return(BadRequest(error: new { error = "You don't own this post." }));
            }

            Post updatedPost = new Post {
                Id   = id, Name = newPost.Name, UserId = userId,
                Tags = newPost.Tags.Select(x => new Tag {
                    Name = x.Name, CreatedBy = x.CreatedBy
                }).ToList()
            };

            var result = await service.UpdatePost(updatedPost);

            if (result)
            {
                return(Ok(newPost));
            }
            return(NotFound());
        }
Exemple #23
0
        public async Task <ActionResult> Update(Guid id, [FromBody] UpdatePostRequest postUpdateDto)
        {
            var command = new Features.Posts.Update.UpdatePostRequest()
            {
                Post = new Post()
                {
                    Content = postUpdateDto.Content,
                    Id      = id,
                    Title   = postUpdateDto.Title,
                },
            };
            var response = await _mediator.Send(command);

            if (response.IsFailed)
            {
                return(WebApiResponses.GetErrorResponse(response));
            }

            var routeUrl = Url.RouteUrl(new UrlRouteContext()
            {
                Host      = Request.Host.Host,
                Protocol  = Request.Scheme,
                RouteName = "GetPostById",
                Values    = new { Id = id },
            });

            Response.Headers.Add("Location", routeUrl);

            return(NoContent());
        }
        public async Task <IActionResult> Update([FromRoute] Guid postId, [FromBody] UpdatePostRequest request)
        {
            var userOwnsPost = await _postservice.UserOwnsPostAsync(postId, HttpContext.GetUserId());


            if (!userOwnsPost)
            {
                return(BadRequest(error: new { error = "Bu post size ait değil" }));
            }

            var post = await _postservice.GetPostByIdAsync(postId);

            post.Name = request.Name;



            var updated = await _postservice.UpdatePostAsync(post);

            if (updated)
            {
                return(Ok(post));
            }

            return(NotFound());
        }
Exemple #25
0
        public async Task <IActionResult> UpdatePost([FromForm] UpdatePostRequest request)
        {
            var response = await mediator.Send(request);

            logger.LogResponse($"User #{HttpContext.GetCurrentUserId()} updated post #{response.Post?.Id}", response.Error);

            return(response.IsSucceeded ? (IActionResult)Ok(response) : BadRequest(response));
        }
Exemple #26
0
        public IActionResult Create([FromBody] UpdatePostRequest updatePostRequest)
        {
            if (!ModelState.IsValid)
            {
                return(UnprocessableEntity(updatePostRequest));
            }

            return(Ok(updatePostRequest));
        }
        //Update
        public async Task <PostResponse> UpdatePost(int id, UpdatePostRequest model)
        {
            var post = await GetPost(id);

            _mapper.Map(model, post);
            _context.Posts.Update(post);
            await _context.SaveChangesAsync();

            return(_mapper.Map <PostResponse>(post));
        }
        public ActionResult <PostResponse> Update([FromRoute] int id, [FromBody] UpdatePostRequest update)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var post = _posts.Update(id, update);

            return(new PostResponse(post));
        }
Exemple #29
0
        public async Task UpdateAsync(int id, UpdatePostRequest updatePostRequest)
        {
            var dbPost = await this.context.Posts.FindAsync(id);

            if (dbPost == null)
            {
                throw new ResourceNotFoundException();
            }

            this.mapper.Map(updatePostRequest, dbPost);
            await this.context.SaveChangesAsync();
        }
Exemple #30
0
        public bool EditPost(UpdatePostRequest request)
        {
            var updatingPost = _postsRepository.Get(request.PostId);

            if (updatingPost != null && (updatingPost.StatusId == (int)PostStatuses.Rejected || updatingPost.StatusId == (int)PostStatuses.Created))
            {
                updatingPost.Text = request.Text;
                return(_postsRepository.Update(updatingPost));
            }

            return(false);
        }