public Users EditUserCredentials(EditUserCredentialsCommand account) { using (var db = _paintStoreContext) { _signInService.SignInCheck(new SignInCommand { Email = account.OldEmail, Password = account.OldPassword }, db); var accountToUpdate = db.Users.First(x => x.Id == account.Id); if (account.NewEmail != null) { accountToUpdate.Email = account.NewEmail; } if (account.NewPassword != null) { if (account.NewPassword.Length < 8) { throw new BadPasswordException(); } accountToUpdate.PasswordSoil = CredentialsHelpers.CreateSalt(); var encoding = new ASCIIEncoding(); var soil = encoding.GetBytes(accountToUpdate.PasswordSoil); var password = encoding.GetBytes(account.NewPassword); accountToUpdate.PasswordHash = Convert.ToBase64String(CredentialsHelpers.GenerateSaltedHash(password, soil)); } accountToUpdate.Token = CredentialsHelpers.CreateSalt(); db.SaveChanges(); return(accountToUpdate); } }
public IActionResult EditUserCredentials([FromBody] EditUserCredentialsCommand user) { try { var editCredentials = _usersService.EditUserCredentials(user); return(Ok(editCredentials.Email)); } catch (BadPasswordException) { return(StatusCode(409)); } catch (UnauthorizedAccessException) { return(StatusCode(401)); } catch (Exception ex) { throw ex; } }