private static IUsersApiClient GenerateUsersApiClient(ILogger logger, StaticHttpClientFactory httpClientFactory, EnvironmentConfiguration environmentConfiguration) { Func <HttpClient> httpClientFunc = new Func <HttpClient>(() => { HttpClient httpClient = new HttpClient(); httpClient.Timeout = new TimeSpan(0, 10, 0); SetDefaultApiOptions(httpClient, new ApiClientConfigurationOptions() { ApiEndpoint = environmentConfiguration.UsersBaseUrl, ApiKey = environmentConfiguration.ApiKey, }); return(httpClient); }); httpClientFactory.AddClient(HttpClientKeys.Users, httpClientFunc); return(new UsersApiClient(httpClientFactory, logger, null)); }
public async Task ApplyPermissions(UserPermission userPermission) { List <UserPermission> userPermissions = new List <UserPermission>() { userPermission }; StaticHttpClientFactory httpClientFactory = new StaticHttpClientFactory(); IUsersApiClient usersClient = GenerateUsersApiClient(logger, httpClientFactory, environmentConfiguration); PermissionService permissionService = new PermissionService(usersClient, logger); var result = await permissionService.ApplyPermissions(userPermissions); var failedRequests = result.Values.Where(r => r.StatusCode != System.Net.HttpStatusCode.OK); if (failedRequests.Any()) { throw new Exception($"Failed to Set Permissions on {failedRequests.Count()} Users"); } }