private void CheckIfUserExists(ResetCodeRepresentation resetCode) { var user = _userAuthenticationDataRepository.FindUserAuthByEmail(resetCode.Email); if (user == null) { throw new InvalidCommandException( $"Cannot find user with email: {resetCode.Email} and with reset code {resetCode.ResetCode.Value}"); } }
private UserAuthenticationData FindUserAuthenticationData(ResetCodeRepresentation resetCode, ResetPasswordCommand request) { var user = _userAuthenticationDataRepository.FindUserAuthByEmail(resetCode.Email); if (user == null) { throw new InvalidCommandException($"Cannot find user with email {resetCode.Email} and with reset code {request.ResetCode.Value}"); } return(user); }
public ResetCodeRepresentation CreateResetPasswordCode(ResetCodeRepresentation resetCodeRepresentation) { var sql = "INSERT INTO dbo.ResetPasswordCode (Checked, DateCreated, Email) " + "OUTPUT Inserted.Id, Inserted.ResetCode, Inserted.DateCreated, Inserted.Checked, Inserted.Email " + "VALUES (@Checked, @DateCreated, @Email)"; using (var connection = new SqlConnection(_settings.ConnectionString)) { connection.Open(); var resetCode = connection.QueryFirst <ResetCodeRepresentation>(sql, new { Checked = resetCodeRepresentation.Checked, DateCreated = resetCodeRepresentation.DateCreated, Email = resetCodeRepresentation.Email }); return(resetCode); } }
protected override Task <RequestStatus> HandleCommand(RequestResetPasswordCommand request, CancellationToken cancellationToken) { var userAuthData = FindUserAuthenticationData(request); var existingResetCode = _resetPasswordCodeRepository.CountResetCodesForEmail(userAuthData.Email); if (existingResetCode > 0) { _logger.LogDebug("Removing {ex} existing codes for email {email}", existingResetCode, userAuthData.Email); _resetPasswordCodeRepository.RemoveResetCodesByEmail(userAuthData.Email); } var resetCode = new ResetCodeRepresentation(0, "000000", DateTime.UtcNow, false, userAuthData.Email); resetCode = _resetPasswordCodeRepository.CreateResetPasswordCode(resetCode); _linkSenderService.SendResetLink(resetCode.ResetCode, userAuthData.UserName, userAuthData.Email); var requestStatus = RequestStatus.CreateFromCommandContext(request.CommandContext, Status.COMPLETED); return(Task.FromResult(requestStatus)); }
public void UpdateResetPasswordCode(ResetCodeRepresentation resetCodeRepresentation) { var sql = "UPDATE dbo.ResetPasswordCode " + "SET Checked = @Checked, DateCreated = @DateCreated, Email = @Email " + "WHERE Id = @Id"; using (var connection = new SqlConnection(_settings.ConnectionString)) { connection.Open(); var affected = connection.Execute(sql, new { Id = resetCodeRepresentation.Id, ResetCode = resetCodeRepresentation.ResetCode.Value, Checked = resetCodeRepresentation.Checked, DateCreated = resetCodeRepresentation.DateCreated, Email = resetCodeRepresentation.Email }); if (affected != 1) { throw new Exception(); } } }