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>()))) ); }
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>())); }
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>(); }