private void Initialize(IPictureparkClientSettings settings, HttpClient httpClient) { Outputs = new OutputClient(settings, httpClient); Contents = new ContentClient(settings, httpClient); BusinessProcesses = new BusinessProcessClient(settings, httpClient); DocumentHistory = new DocumentHistoryClient(settings, httpClient); JsonSchemas = new JsonSchemaClient(settings, httpClient); Permissions = new PermissionClient(settings, httpClient); PublicAccess = new PublicAccessClient(settings, httpClient); Shares = new ShareClient(settings, httpClient); Users = new UserClient(settings, httpClient); Schemas = new SchemaClient((BusinessProcessClient)BusinessProcesses, settings, httpClient); Transfers = new TransferClient((BusinessProcessClient)BusinessProcesses, settings, httpClient); ListItems = new ListItemClient((BusinessProcessClient)BusinessProcesses, settings, httpClient); Profile = new ProfileClient(settings, httpClient); ServiceProviders = new ServiceProviderClient(settings, httpClient); }
public async Task ProcessWeatherForecastAsync(string city) { CancellationTokenSource cancelTokenSource = new CancellationTokenSource(); IServiceProviderClient openWeatherMapClient = _serviceProviderClientFactory.CreateServiceProviderClient(ServiceProviderCode.OpenWeatherMap); IServiceProviderClient weatherBitClient = _serviceProviderClientFactory.CreateServiceProviderClient(ServiceProviderCode.WeatherBit); Stopwatch timer = Stopwatch.StartNew(); var taskList = new List <Task <ServiceProviderWeatherResponse> > { weatherBitClient.GetCurrentWeatherForecastAsync(city, cancelTokenSource.Token), openWeatherMapClient.GetCurrentWeatherForecastAsync(city, cancelTokenSource.Token) }; Task <ServiceProviderWeatherResponse> finishedTask = await Task.WhenAny(taskList); ServiceProviderWeatherResponse serviceResponse = await finishedTask; timer.Stop(); await _writer.WriteAsync(serviceResponse, timer.Elapsed.TotalSeconds); }