public async Task <IActionResult> Update([FromBody] UpdateUserImageRequest updateUserImageRequest, Guid userId) { var command = new UpdateUserImageCommand(updateUserImageRequest.ImageUrl, userId); var result = await Mediator.Send(command); return(await ResponseBase(result)); }
public async Task <IActionResult> UploadImageAsync([Required] IFormFile file, [FromServices] IUserDirectoryBlobProvider blobProvider, [FromServices] UserManager <User> userManager, CancellationToken token) { var userId = userManager.GetLongUserId(User); Uri uri; try { uri = await blobProvider.UploadImageAsync(userId, file.FileName, file.OpenReadStream(), file.ContentType, token); } catch (ArgumentException) { ModelState.AddModelError("x", "not an image"); return(BadRequest(ModelState)); } if (uri == null) { ModelState.AddModelError("x", "not an image"); return(BadRequest(ModelState)); } var imageProperties = new ImageProperties(uri, ImageProperties.BlurEffect.None); var url = Url.ImageUrl(imageProperties); var fileName = uri.AbsolutePath.Split('/').LastOrDefault(); var command = new UpdateUserImageCommand(userId, url, fileName); await _commandBus.DispatchAsync(command, token); return(Ok(url)); }
public async Task <BaseResponse <string> > Handle(UpdateUserImageCommand request, CancellationToken cancellationToken) { var user = await _applicationDbContext.Users.FindAsync(request.UserId); var response = new BaseResponse <string>(); if (user == null) { response.SetValidationErrors(new [] { "User Not Found!" }); return(response); } user.Image = request.ImageUrl; await _applicationDbContext.SaveChangesAsync(cancellationToken); response.SetIsOk("Image Updated!"); return(response); }