public async Task <ActionResult> ChangeUserEmail(long id, ChangeUserEmailModel changeUserEmailModel) { var currentUserId = long.Parse(User.Identity.Name); if (id != currentUserId) { return(Forbid()); } if (id != changeUserEmailModel.Id) { return(BadRequest()); } var user = await _context.Users.FindAsync(id); if (!_userService.VerifyPassword(user, changeUserEmailModel.Password)) { return(BadRequest(new { message = "Neteisingas slaptažodis" })); } _mapper.Map(changeUserEmailModel, user); await _context.SaveChangesAsync(); return(NoContent()); }
/// <inheritdoc/> public async Task ChangeUserEmailAsync(Guid id, ChangeUserEmailModel model, CancellationToken cancellationToken) { using (var scope = _serviceProvider.CreateScope()) using (var context = scope.ServiceProvider.GetRequiredService <DatabaseContext>()) { var user = await context.Users.FirstOrDefaultAsync(x => x.Id == id, cancellationToken) .ConfigureAwait(false); if (user == null) { throw new ArgumentException("User not found"); } if (model.NewEmail == user.Email || model.OldEmail == model.NewEmail) { throw new InvalidDataException("Emails are equal."); } user.Email = model.NewEmail; await context.SaveChangesAsync(cancellationToken).ConfigureAwait(false); } }
public async Task ChangeUserEmailAsync([FromBody] ChangeUserEmailModel model, CancellationToken cancellationToken) { await _accountService.ChangeUserEmailAsync(Guid.Parse(User.Identity.Name), model, cancellationToken).ConfigureAwait(false); }
public ActionResult ChangeEmail(ChangeUserEmailModel model) { return(ValidatedCommandResult(model, new ChangeUserEmailCommand(_authenticationService.Identity, model.Password, model.NewEmail), "EmailChangeRequested")); }