private static void Configure(IServiceCollection services, IConfigurationRoot configuration)
        {
            // Db and basic functions
            services.AddTransient(x => x.CreateDbContext(y => new ContentDbContext(y), DatabaseConnectionStringNames.Content, false));
            services.AddTransient <Func <ContentDbContext> >(x => x.GetRequiredService <ContentDbContext>);
            services.AddScoped <IUtcDateTimeProvider, StandardUtcDateTimeProvider>();
            services.AddSingleton <IConfiguration>(configuration);
            services.AddSingleton <IEksConfig, StandardEksConfig>();
            services.AddTransient <IJsonSerializer, StandardJsonSerializer>();

            // Orchestrating components
            services.AddTransient <ManifestUpdateCommand>();
            services.AddTransient <ManifestV2Builder>();
            services.AddTransient <ManifestV3Builder>();
            services.AddTransient <ManifestV4Builder>();

            // Operating components
            services.AddTransient <Func <IContentEntityFormatter> >(x => x.GetRequiredService <StandardContentEntityFormatter>);
            services.AddTransient <StandardContentEntityFormatter>();
            services.AddTransient <IPublishingIdService, Sha256HexPublishingIdService>();
            services.AddTransient <ZippedSignedContentFormatter>();
            services.AddTransient(x =>
                                  SignerConfigStartup.BuildEvSigner(
                                      x.GetRequiredService <IConfiguration>(),
                                      x.GetRequiredService <LocalMachineStoreCertificateProviderLoggingExtensions>(),
                                      x.GetRequiredService <IUtcDateTimeProvider>()));

            // Logging
            services.AddSingleton <ManifestUpdateCommandLoggingExtensions>();
            services.AddSingleton <LocalMachineStoreCertificateProviderLoggingExtensions>();
        }
        public static void PublishContentForV3Startup(this IServiceCollection services)
        {
            services.AddSingleton <LocalMachineStoreCertificateProviderLoggingExtensions>();

            services.AddTransient <Func <ContentInsertDbCommand> >(x =>
                                                                   () => new ContentInsertDbCommand(
                                                                       x.GetRequiredService <ContentDbContext>(),
                                                                       x.GetRequiredService <IUtcDateTimeProvider>(),
                                                                       x.GetRequiredService <IPublishingIdService>(),
                                                                       new ZippedSignedContentFormatter(
                                                                           SignerConfigStartup.BuildEvSigner(
                                                                               x.GetRequiredService <IConfiguration>(),
                                                                               x.GetRequiredService <LocalMachineStoreCertificateProviderLoggingExtensions>(),
                                                                               x.GetRequiredService <IUtcDateTimeProvider>())))
                                                                   );
        }
Beispiel #3
0
        public static void ManifestForV4Startup(this IServiceCollection services)
        {
            services.AddTransient <ManifestBuilderV3>();
            services.AddTransient <ManifestBuilderV4>();

            services.AddTransient <Func <IContentEntityFormatter> >(x =>
                                                                    () => new StandardContentEntityFormatter(
                                                                        new ZippedSignedContentFormatter(
                                                                            SignerConfigStartup.BuildEvSigner(
                                                                                x.GetRequiredService <IConfiguration>(),
                                                                                x.GetRequiredService <LocalMachineStoreCertificateProviderLoggingExtensions>(),
                                                                                x.GetRequiredService <IUtcDateTimeProvider>())),
                                                                        x.GetRequiredService <IPublishingIdService>(),
                                                                        x.GetRequiredService <IJsonSerializer>()
                                                                        ));
        }
        private static void Configure(IServiceCollection services, IConfigurationRoot configuration)
        {
            services.AddSingleton <IConfiguration>(configuration);
            services.AddTransient <SigTesterService>();
            services.AddScoped <IUtcDateTimeProvider, StandardUtcDateTimeProvider>();
            services.AddSingleton <IEksHeaderInfoConfig, EksHeaderInfoConfig>();
            services.AddTransient <IEksContentFormatter, GeneratedProtobufEksContentFormatter>();
            services.AddTransient <IEksBuilder, EksBuilderV1>();
            services.AddSingleton <EksBuilderV1LoggingExtensions>();
            services.AddSingleton <SigTestFileCreatorLoggingExtensions>();
            services.AddSingleton <LocalMachineStoreCertificateProviderLoggingExtensions>();

            services.AddTransient(x =>
                                  SignerConfigStartup.BuildEvSigner(
                                      x.GetRequiredService <IConfiguration>(),
                                      x.GetRequiredService <LocalMachineStoreCertificateProviderLoggingExtensions>(),
                                      x.GetRequiredService <IUtcDateTimeProvider>()));
            services.AddTransient(x =>
                                  SignerConfigStartup.BuildGaSigner(
                                      x.GetRequiredService <IConfiguration>(),
                                      x.GetRequiredService <LocalMachineStoreCertificateProviderLoggingExtensions>()));
        }
Beispiel #5
0
        private static void Configure(IServiceCollection services, IConfigurationRoot configuration)
        {
            //Databases
            services.AddTransient(x => x.CreateDbContext(y => new WorkflowDbContext(y), DatabaseConnectionStringNames.Workflow, false));
            services.AddTransient(x => x.CreateDbContext(y => new ContentDbContext(y), DatabaseConnectionStringNames.Content, false));
            services.AddTransient(x => x.CreateDbContext(y => new EksPublishingJobDbContext(y), DatabaseConnectionStringNames.EksPublishing, false));
            services.AddTransient(x => x.CreateDbContext(y => new StatsDbContext(y), DatabaseConnectionStringNames.Stats, false));
            services.AddTransient(x => x.CreateDbContext(y => new DkSourceDbContext(y), DatabaseConnectionStringNames.DkSource, false));
            services.AddTransient(x => x.CreateDbContext(y => new IksInDbContext(y), DatabaseConnectionStringNames.IksIn, false));
            services.AddTransient(x => x.CreateDbContext(y => new IksPublishingJobDbContext(y), DatabaseConnectionStringNames.IksPublishing, false));
            services.AddTransient(x => x.CreateDbContext(y => new IksOutDbContext(y), DatabaseConnectionStringNames.IksOut, false));

            services.AddTransient <Func <WorkflowDbContext> >(x => x.GetService <WorkflowDbContext>);
            services.AddTransient <Func <ContentDbContext> >(x => x.GetService <ContentDbContext>);
            services.AddTransient <Func <EksPublishingJobDbContext> >(x => x.GetService <EksPublishingJobDbContext>);
            services.AddTransient <Func <StatsDbContext> >(x => x.GetService <StatsDbContext>);
            services.AddTransient <Func <DkSourceDbContext> >(x => x.GetService <DkSourceDbContext>);
            services.AddTransient <Func <IksInDbContext> >(x => x.GetService <IksInDbContext>);
            services.AddTransient <Func <IksOutDbContext> >(x => x.GetService <IksOutDbContext>);
            services.AddTransient <Func <IksPublishingJobDbContext> >(x => x.GetService <IksPublishingJobDbContext>);

            services.AddSingleton <IWrappedEfExtensions, SqlServerWrappedEfExtensions>();


            //Services
            services.AddScoped <IUtcDateTimeProvider, StandardUtcDateTimeProvider>();

            //Configuration
            services.AddSingleton <IConfiguration>(configuration);
            services.AddSingleton <ITekValidatorConfig, TekValidatorConfig>();
            services.AddSingleton <IEksHeaderInfoConfig, EksHeaderInfoConfig>();
            services.AddSingleton <IEksConfig, StandardEksConfig>();

            services.AddSingleton <IAcceptableCountriesSetting, EfgsInteropConfig>();
            services.AddSingleton <IOutboundFixedCountriesOfInterestSetting, EfgsInteropConfig>();
            services.AddSingleton <IEksEngineConfig, EfgsInteropConfig>();

            //EKS Engine
            services.EksEngine();

            services.AddTransient <RemoveDuplicateDiagnosisKeysForIksWithSpCommand>();
            services.AddTransient <RemovePublishedDiagnosisKeys>();

            services.AddSingleton <EksBuilderV1LoggingExtensions>();
            services.AddSingleton <ResignerLoggingExtensions>();
            services.AddSingleton <EksEngineLoggingExtensions>();
            services.AddSingleton <SnapshotLoggingExtensions>();
            services.AddSingleton <EksJobContentWriterLoggingExtensions>();
            services.AddSingleton <MarkWorkFlowTeksAsUsedLoggingExtensions>();
            services.AddSingleton <ManifestUpdateCommandLoggingExtensions>();
            services.AddSingleton <LocalMachineStoreCertificateProviderLoggingExtensions>();

            services.AddTransient <IRiskCalculationParametersReader, RiskCalculationParametersHardcoded>();
            services.AddTransient <IInfectiousness>(
                x =>
            {
                var rr   = x.GetService <IRiskCalculationParametersReader>();
                var days = rr.GetInfectiousDaysAsync();
                return(new Infectiousness(days));
            }
                );

            //Signing
            services.NlResignerStartup();
            services.DummySignerStartup();
            services.GaSignerStartup();

            services.AddTransient <IksImportBatchJob>();
            services.AddTransient <Func <IksImportCommand> >(x => x.GetRequiredService <IksImportCommand>);
            services.AddTransient(
                x => new IksImportCommand(
                    x.GetRequiredService <DkSourceDbContext>(),
                    new IDiagnosticKeyProcessor[]
            {
                x.GetRequiredService <OnlyIncludeCountryOfOriginKeyProcessor>(),
                x.GetRequiredService <DosDecodingDiagnosticKeyProcessor>(),        //Adds result to metadata
                x.GetRequiredService <NlTrlFromDecodedDosDiagnosticKeyProcessor>(),
                x.GetRequiredService <ExcludeTrlNoneDiagnosticKeyProcessor>(),
                x.GetRequiredService <NlSymptomaticFromDecodedDosDiagnosticKeyProcessor>(),
            },
                    x.GetRequiredService <ITekValidatorConfig>(),
                    x.GetRequiredService <IUtcDateTimeProvider>(),
                    x.GetRequiredService <ILogger <IksImportCommand> >()
                    )
                );

            services.AddTransient <OnlyIncludeCountryOfOriginKeyProcessor>();
            services.AddTransient <DosDecodingDiagnosticKeyProcessor>();
            services.AddTransient <NlTrlFromDecodedDosDiagnosticKeyProcessor>();
            services.AddTransient <ExcludeTrlNoneDiagnosticKeyProcessor>();
            services.AddTransient <NlSymptomaticFromDecodedDosDiagnosticKeyProcessor>();

            services.AddTransient <IksEngine>();

            services.AddTransient <IksInputSnapshotCommand>();
            services.AddTransient <IksFormatter>();
            services.AddSingleton <IIksConfig, IksConfig>();
            services.AddTransient <MarkDiagnosisKeysAsUsedByIks>();
            services.AddTransient <IksJobContentWriter>();

            //ManifestEngine
            services.AddTransient <ManifestUpdateCommand>();
            services.AddTransient <ManifestV2Builder>();
            services.AddTransient <ManifestV3Builder>();
            services.AddTransient <ManifestV4Builder>();
            services.AddTransient <Func <IContentEntityFormatter> >(x => x.GetRequiredService <StandardContentEntityFormatter>);
            services.AddTransient <StandardContentEntityFormatter>();
            services.AddTransient <ZippedSignedContentFormatter>();
            services.AddTransient(x =>
                                  SignerConfigStartup.BuildEvSigner(
                                      x.GetRequiredService <IConfiguration>(),
                                      x.GetRequiredService <LocalMachineStoreCertificateProviderLoggingExtensions>(),
                                      x.GetRequiredService <IUtcDateTimeProvider>()));
            services.AddTransient <IJsonSerializer, StandardJsonSerializer>();
        }