public async Task <bool> UpdateProfilePictureAsync(UpdateProfilePictureCommand command) { var user = await _userManager.FindByNameAsync(command.Username); var claims = await _userManager.GetClaimsAsync(user); IdentityResult result; var pictureClaim = claims.Of(JwtClaimTypes.Picture); var newPictureClaim = new Claim(JwtClaimTypes.Picture, command.Picture); if (pictureClaim != null) { result = await _userManager.ReplaceClaimAsync(user, pictureClaim, newPictureClaim); } else { result = await _userManager.AddClaimAsync(user, newPictureClaim); } if (result.Succeeded) { return(true); } foreach (var error in result.Errors) { await _bus.RaiseEvent(new DomainNotification(result.ToString(), error.Description)); } return(false); }
public async Task <bool> UpdateProfilePictureAsync(UpdateProfilePictureCommand command) { var user = await _userManager.FindByIdAsync(command.Id.ToString()); user.Picture = command.Picture; var result = await _userManager.UpdateAsync(user); if (result.Succeeded) { var claims = await _userManager.GetClaimsAsync(user); await AddOrUpdateClaimAsync(user, claims, "picture", user.Picture); return(true); } foreach (var error in result.Errors) { await _bus.RaiseEvent(new DomainNotification(result.ToString(), error.Description)); } return(false); }
public async Task Handle(UpdateProfilePictureCommand request, CancellationToken cancellationToken) { if (!request.IsValid()) { NotifyValidationErrors(request); return; } var result = await _userService.UpdateProfilePictureAsync(request); if (result) { await Bus.RaiseEvent(new ProfilePictureUpdatedEvent(request.Id.Value, request.Picture)); } }
public async Task <IActionResult> UploadProfilePicture(IFormFile file) { var updateCommand = new UpdateProfilePictureCommand { UserId = HttpContext.GetLoggedUserId(), }; using (var stream = new MemoryStream()) { await file.CopyToAsync(stream); updateCommand.ProfilePicture = stream.ToArray(); updateCommand.FileType = "." + file.FileName.Split('.')[file.FileName.Split('.').Length - 1]; } var response = await _mediator.Send(updateCommand); return(Ok(BaseResponse.Ok(response.Message))); }
public async Task <IActionResult> UpdateProfilePicture([FromRoute] Guid id, [FromForm] UpdateProfilePictureCommand command) { try { command.Id = id; if (!ModelState.IsValid) { return(base.BadRequest(ModelState)); } var result = await _mediator.Send <UpdateProfilePictureCommandResult>(command); return(base.Ok(result)); } catch (NotFoundException) { return(base.NotFound()); } }