private void AddDataProvider(IServiceCollection services) { var logger = loggerFactory_.CreateLogger("Startup"); var dataProviderName = configuration_["SubcaseDataProvider"]; logger.LogInformation($"Data provider: {dataProviderName}"); if (String.Equals("Random", dataProviderName, StringComparison.OrdinalIgnoreCase)) { logger.LogInformation("Using random data provider"); services.AddSingleton <ISubcaseDataProdiver, RandomDataProvider>(); } else if (String.Equals("Report", dataProviderName, StringComparison.OrdinalIgnoreCase)) { logger.LogInformation("Using SSRS report data provider"); var serviceProvider = services.BuildServiceProvider(); var reportServerClient = serviceProvider.GetService <IReportServerClient>(); var dataProviderCache = new DataProdiverCache( new ReportServerDataProvider(loggerFactory_.CreateLogger("ReportServerDataProvider"), reportServerClient), loggerFactory_.CreateLogger("DataProdiverCache"), TimeSpan.FromMinutes(5)); services.AddSingleton <ISubcaseDataProdiver>(dataProviderCache); } else if (String.Equals("Cosmos", dataProviderName, StringComparison.OrdinalIgnoreCase)) { logger.LogInformation("Using CosmosDB data provider"); var endpointUri = configuration_["CosmosDB:EndpointUri"]; var primaryKey = configuration_["CosmosDB:PrimaryKey"]; logger.LogDebug($"Database endpoint {endpointUri}"); var documentClient = new DocumentClient(new Uri(endpointUri), primaryKey); var dataProviderCache = new DataProdiverCache( new CosmosDataProvider(documentClient, loggerFactory_.CreateLogger("CosmosDataProvider")), loggerFactory_.CreateLogger("DataProdiverCache"), TimeSpan.FromMinutes(1)); services.AddSingleton <ISubcaseDataProdiver>(dataProviderCache); } }
public void SetUp() { _mockDataProvider = new Mock <ISubcaseDataProdiver>(); _dataProviderCache = new DataProdiverCache(_mockDataProvider.Object, null, TimeSpan.FromSeconds(1)); }