public async Task <string> Handle(CreatePostWithFileCommand request, CancellationToken cancellationToken) { Domain.Entities.Post post = await _postService.CreatePostWithFileAsync(request.UserId, request.CreatePostWithFileDto); if (!PostHelpers.IsContentFile(request.CreatePostWithFileDto.Content)) { throw new HttpStatusCodeException(HttpStatusCode.BadRequest, "Post creation failed"); } FileData data = BaseHelpers.GetContentFileData <Domain.Entities.Post>( request.CreatePostWithFileDto.Content, post.Id ); if (post.ContentType.Equals(data.FileName.GetContentType())) { await _blobService.UploadImageBlobAsync(data.Content, data.FileName); request.CreatePostWithFileDto.Content = data.FileName; request.CreatePostWithFileDto.ContentType = data.FileName.GetContentType(); await _postService.UpdatePostAsync(post, new UpdatePostDto { Content = request.CreatePostWithFileDto.Content, Title = post.Title, }); } else { throw new HttpStatusCodeException(HttpStatusCode.BadRequest, "Can not update content type of a post"); } return(post.Id); }
public async Task <PostViewModel> Handle(UpdatePostCommand request, CancellationToken cancellationToken) { if (PostHelpers.IsContentFile(request.UpdatePostDto.Content) && !request.Post.ContentType.Equals("application/text")) { FileData data = BaseHelpers.GetContentFileData <Domain.Entities.Post>( request.UpdatePostDto.Content, request.Post.Id ); request.UpdatePostDto.Content = data.FileName; if (request.Post.ContentType.Equals(request.UpdatePostDto.Content.GetContentType())) { await _blobService.UploadImageBlobAsync(data.Content, data.FileName); } } return(await _postService.UpdatePostAsync(request.Post, request.UpdatePostDto)); }