private async Task <string> AddToken(AccessToken request) { var result = string.Empty; await Task.Run(() => { if (request == null) { throw new ArgumentNullException(nameof(request)); } request.Email = request.Email.ToLower(); if (_tokensRepository.AccessTokens != null && _tokensRepository.AccessTokens.Any()) { var t = _tokensRepository.AccessTokens.FirstOrDefaultAsync(x => x.Email.Equals(request.Email)).Result; if (t != null) { result = _locale["token_exists"]; } } if (string.IsNullOrEmpty(result)) { try { request.GenerateNew(); _tokensRepository.AddToken(request); result = _locale["token_success"] + ": " + request.Token; } catch (Exception ex) { throw new ArgumentNullException("Error: ", ex.InnerException); } } }); return(result); }