public async Task <OperationResult <AddPasswordCommandResponse> > Handle(AddPasswordCommandRequest request, CancellationToken cancellationToken) { var salt = PasswordHelper.GeneratePasswordSalt(); var response = new AddPasswordCommandResponse(request.MessageId); OperationResult <AddPasswordCommandResponse> result; var userAccount = await _dbContext.UserAccount.SingleOrDefaultAsync(u => u.Email == request.TransferObject.Email || u.Password == request.TransferObject.Password, cancellationToken : cancellationToken); if (userAccount.NotNull()) { userAccount.Email = request.TransferObject.Email; userAccount.Password = PasswordHelper.GenerateSaltedHash(request.TransferObject.Password, salt); userAccount.Salt = salt; _dbContext.UserAccount.Update(userAccount); await _dbContext.SaveChangesAsync(); response.UserId = userAccount.UserAccountId; result = new OperationResult <AddPasswordCommandResponse>(EnumOperationResult.Updated, null, response); } else { result = new OperationResult <AddPasswordCommandResponse>(EnumOperationResult.None, null, response); } return(result); }
public async Task <IActionResult> AddPassword(AddPasswordRequest request) { var model = new AddPasswordCommandRequest { TransferObject = request }; var result = await Mediator.Send(model); return(HandleResponse(result, r => r)); }