public async Task AuthenticateAsync(OrionApiClient client, Request request) { if (!AuthenticationHelpers.IsAuthenticated(authToken)) { if (request.RequestUri.ToString() != AuthenticationHelpers.AuthenticationPath && request.RequestUri.ToString() != AuthenticationHelpers.ImpersonationPath) { authToken = await AuthenticationHelpers.HandleBasicAuthenticationAsync(client, request, apiCredentials); } } if (request.RequestUri.ToString() == AuthenticationHelpers.ImpersonationPath) { impToken = await AuthenticationHelpers.HandleBasicAuthenticationAsync(client, request, serviceCredentials); AuthenticationHelpers.HandleImpersonation(request, impToken); } else { AuthenticationHelpers.ApplyTokenAuthentication(request, authToken); } }