Ejemplo n.º 1
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            Logger.LogInformation("Calling Startup.ConfigureServices");

            services.AddControllers().AddNewtonsoftJson();

            HashSet <string> sources = Settings.Current.GetResultSourcesAsync(Logger).Result;

            Logger.LogInformation($"Result sources defined:{Environment.NewLine} {string.Join(Environment.NewLine + Enumerable.Repeat(" ", 5), sources)}");

            IStoreProvider storeProvider;

            try
            {
                IDbStoreProvider dbStoreprovider = DbStoreProvider.Create(
                    new RocksDbOptionsProvider(
                        new SystemEnvironment(),
                        Settings.Current.OptimizeForPerformance,
                        Option.None <ulong>(),
                        Option.None <ulong>(),
                        Option.None <int>(),
                        Option.None <StorageLogLevel>()),
                    this.GetStoragePath(Settings.Current.StoragePath),
                    sources);

                storeProvider = new StoreProvider(dbStoreprovider);
            }
            catch (Exception ex) when(!ExceptionEx.IsFatal(ex))
            {
                Logger.LogError(ex, "Error creating RocksDB store. Falling back to in-memory store.");
                storeProvider = new StoreProvider(new InMemoryDbStoreProvider());
            }

            services.AddSingleton <ITestOperationResultStorage>(
                TestOperationResultStorage.CreateAsync(
                    storeProvider,
                    sources).Result);

            Settings.Current.TestResultReportingServiceSettings.ForEach(() => services.AddHostedService <TestResultReportingService>());
            Settings.Current.TestResultEventReceivingServiceSettings.ForEach(() => services.AddHostedService <TestResultEventReceivingService>());

            Logger.LogInformation("Calling Startup.ConfigureServices Completed.");
        }
Ejemplo n.º 2
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            Logger.LogInformation("Calling Startup.ConfigureServices");

            services.AddMvc();

            IStoreProvider storeProvider;

            try
            {
                IDbStoreProvider dbStoreprovider = DbStoreProvider.Create(
                    new RocksDbOptionsProvider(
                        new SystemEnvironment(),
                        Settings.Current.OptimizeForPerformance,
                        Option.None <ulong>()),
                    this.GetStoragePath(Settings.Current.StoragePath),
                    Settings.Current.GetResultSources());

                storeProvider = new StoreProvider(dbStoreprovider);
            }
            catch (Exception ex) when(!ExceptionEx.IsFatal(ex))
            {
                Logger.LogError(ex, "Error creating RocksDB store. Falling back to in-memory store.");
                storeProvider = new StoreProvider(new InMemoryDbStoreProvider());
            }

            services.AddSingleton <ITestOperationResultStorage>(
                TestOperationResultStorage.CreateAsync(
                    storeProvider,
                    Settings.Current.GetResultSources()).Result);

            services.AddHostedService <TestResultReportingService>();
            services.AddHostedService <TestResultEventReceivingService>();

            Logger.LogInformation("Calling Startup.ConfigureServices Completed.");
        }