public async Task <ServiceResult> UpdateUserAccount(Guid userId, DTOs.UpdateAccount account) { ServiceResult result = new ServiceResult(); PassportUser user = await userManager.FindByIdAsync(userId.ToString()); if (user == null) { result.Errors.Add(new ServiceResult.Error { Key = nameof(Errors.UserNotFound), Message = Errors.UserNotFound, }); result.Code = 404; return(result); } if (!user.Email.Equals(account.Email, StringComparison.InvariantCultureIgnoreCase)) { user.EmailConfirmed = false; } user.Update(account.Email, account.UserName); IdentityResult updateResult = await userManager.UpdateAsync(user); if (!updateResult.Succeeded) { result.Errors.Add(new ServiceResult.Error { Key = nameof(Errors.UpdateFailed), Message = Errors.UpdateFailed, }); foreach (IdentityError error in updateResult.Errors) { result.Errors.Add(new ServiceResult.Error { Key = error.Code, Message = error.Description, }); } result.Code = 400; } return(result); }
public async Task <OperationResult> UpdateUserAccount([FromRoute] Guid accountId, [FromBody] DTOs.UpdateAccount payload) { var result = await this.passportService.UpdateUserAccount(accountId, payload); if (result.Successful) { return(Ok()); } return(BadRequest()); }