public async Task <Result <ImageUploadResponse> > Handle(UpdateUserPictureCommand command, CancellationToken cancellationToken) { var user = await _unitOfWork.Users.FindAsync(command.UserId, cancellationToken); if (user !.Id != _currentUserId) { return(Result <ImageUploadResponse> .Forbidden()); } var blobName = string.Empty; if (string.IsNullOrEmpty(command.Data)) { await RemoveOriginalPicture(user.Picture, cancellationToken); user.Picture = null; } else { blobName = $"{await _randomIdGenerator.GenerateAsync(size: 15)}.jpg"; await _imageService.UploadImage(command.Data, AssetContainerConstants.USER_PICTURES, blobName, cancellationToken); await RemoveOriginalPicture(user.Picture, cancellationToken); user.Picture = blobName; } await _unitOfWork.SaveChangesAsync(cancellationToken); return(Result <ImageUploadResponse> .Success(new ImageUploadResponse { Url = MediaLinkConstants.USER_PICTURE + blobName })); }
public async Task <IActionResult> UpdateUserPicture([FromBody] UpdateUserPictureCommand command) { command.UserId = UserId; var result = await Mediator.Send(command); return(Ok(result)); }
public async Task <IActionResult> AddPicture([FromBody] ImageUploadRequest request, CancellationToken cancellationToken) { var command = new UpdateUserPictureCommand(_currentUserId, request.Data); var result = await _mediator.Send(command, cancellationToken); return(result.IsSuccess ? Ok(result.Data) : result.ReturnErrorResponse()); }