public async Task <IActionResult> EditAccountEmail([FromBody] AccountEditEmailDto emailDto) { var result = await _accountService.EditEmail(emailDto); if (!result.Success) { return(BadRequest(result.Message)); } return(Ok(result.Token)); }
public async Task <AccountResponse> EditEmail(AccountEditEmailDto emailDto) { Dictionary <string, string[]> errors = new Dictionary <string, string[]>(); UserAccount user = _context.UserAccounts.AsNoTracking().FirstOrDefault(u => u.UserName == _userName); if (user == null) { errors.Add("User", new[] { "Podane konto nie istnieje" }); return(new AccountResponse(errors)); } var result = await _signInManager.CheckPasswordSignInAsync(user, emailDto.Password, false); if (!result.Succeeded) { errors.Add("Hasło", new[] { "Podałeś zle haslo" }); return(new AccountResponse(errors)); } UserAccount doExistEmail = await _context.UserAccounts.AsNoTracking().FirstOrDefaultAsync(u => u.Email == emailDto.Email); if (doExistEmail != null) { errors.Add("Email", new[] { "Podałeś zajety Email" }); return(new AccountResponse(errors)); } try { user.Email = emailDto.Email; user.NormalizedEmail = emailDto.Email.ToUpper(); _context.UserAccounts.Update(user); _context.SaveChanges(); } catch (Exception ex) { errors.Add("Wystąpił nieoczekiwany błąd", new[] { ex.Message }); return(new AccountResponse(errors)); } JwtTokenDto response = new JwtTokenDto { Token = GenerateJwtToken(user.Email, user) }; return(new AccountResponse(response)); }