public async Task <PasswordResetToken> GetPasswordResetTokenAsync(string tokenValue) { var token = await repository.GetPasswordResetTokenAsync(tokenValue); if (token == null) { throw new AppException("Такого токена нет"); } await repository.DeleteTokenAsync(token); if (token.validUntil < DateTime.Now) { throw new AppException("Время действия токена вышло"); } return(token); }