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);
        }