public async Task <string> LoadProvider(IDictionary <string, ProviderCategoryConfiguration> configs)
        {
            statisticsProviderLoader = new ProviderLoader <IProvider>();

            if (!configs.ContainsKey(providerKind))
            {
                return(null);
            }

            var statsProviders = configs[providerKind].Providers;

            if (statsProviders.Count == 0)
            {
                return(null);
            }
            if (statsProviders.Count > 1)
            {
                throw new ArgumentOutOfRangeException(providerKind + "Providers",
                                                      string.Format("Only a single {0} provider is supported.", providerKind));
            }
            statisticsProviderLoader.LoadProviders(statsProviders, this);
            await statisticsProviderLoader.InitProviders(runtime);

            return(statisticsProviderLoader.GetProviders().First().Name);
        }
 public IList <IProvider> GetProviders()
 {
     return(statisticsProviderLoader.GetProviders());
 }