Beispiel #1
0
        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);
            }
        }
Beispiel #2
0
 public void SetUp()
 {
     _mockDataProvider  = new Mock <ISubcaseDataProdiver>();
     _dataProviderCache = new DataProdiverCache(_mockDataProvider.Object, null, TimeSpan.FromSeconds(1));
 }