Exemple #1
0
        private static OrganisationGroupResiliencePolicies CreateResiliencePolicies(PolicySettings policySettings)
        {
            AsyncBulkheadPolicy totalNetworkRequestsPolicy = ResiliencePolicyHelpers.GenerateTotalNetworkRequestsPolicy(policySettings);

            OrganisationGroupResiliencePolicies resiliencePolicies = new OrganisationGroupResiliencePolicies
            {
                ProvidersApiClient = ResiliencePolicyHelpers.GenerateRestRepositoryPolicy(totalNetworkRequestsPolicy)
            };

            return(resiliencePolicies);
        }
Exemple #2
0
        private static void RegisterSpecificationServiceComponents(IServiceCollection serviceCollection, IConfiguration configuration)
        {
            serviceCollection.AddSingleton(ctx => configuration);
            serviceCollection.AddScoped <ISpecificationPublishingService, SpecificationPublishingService>();
            serviceCollection.AddSingleton <IProviderFundingPublishingService, ProviderFundingPublishingService>();
            serviceCollection.AddSingleton <IHealthChecker, ProviderFundingPublishingService>();
            serviceCollection.AddSingleton <ISpecificationIdServiceRequestValidator, PublishSpecificationValidator>();
            serviceCollection.AddSingleton <IPublishedProviderIdsServiceRequestValidator, PublishedProviderIdsValidator>();
            serviceCollection.AddSingleton <IPublishedProviderFundingService, PublishedProviderFundingService>();
            serviceCollection.AddSingleton <ISpecificationService, SpecificationService>();
            serviceCollection.AddSingleton <ICalculationsService, CalculationsService>();
            serviceCollection.AddSingleton <IProviderService, ProviderService>();
            serviceCollection.AddSingleton <IPublishedProviderIndexerService, PublishedProviderIndexerService>();
            serviceCollection.AddSingleton <IPublishProviderExclusionCheck, PublishedProviderExclusionCheck>();
            serviceCollection.AddSingleton <IFundingLineValueOverride, FundingLineValueOverride>();
            serviceCollection.AddSingleton <IPublishedFundingDateService, PublishedFundingDateService>();
            serviceCollection.AddSingleton <IPublishedFundingDataService, PublishedFundingDataService>();
            serviceCollection.AddSingleton <IPublishedProviderContentPersistanceService, PublishedProviderContentPersistanceService>();
            serviceCollection.AddSingleton <ICreateRefreshFundingJobs, RefreshFundingJobCreation>();
            serviceCollection.AddSingleton <ICreateApproveAllFundingJobs, ApproveAllFundingJobCreation>();
            serviceCollection.AddSingleton <ICreateApproveBatchFundingJobs, ApproveBatchFundingJobCreation>();
            serviceCollection.AddSingleton <ICreateAllPublishProviderFundingJobs, AllPublishProviderFundingJobCreation>();
            serviceCollection.AddSingleton <ICreatePublishIntegrityJob, PublishIntegrityCheckJobCreation>();
            serviceCollection.AddSingleton <ICreateBatchPublishProviderFundingJobs, BatchPublishProviderFundingJobCreation>();
            serviceCollection.AddSingleton <ICreateDeleteSpecificationJobs, DeleteSpecificationJobCreation>();
            serviceCollection.AddSingleton <ICreateDeletePublishedProvidersJobs, DeletePublishedProvidersJobCreation>();
            serviceCollection.AddSingleton <IPublishedFundingStatusUpdateService, PublishedFundingStatusUpdateService>();
            serviceCollection.AddSingleton <IDeleteSpecifications, DeleteSpecificationService>();
            serviceCollection.AddSingleton <IDeletePublishedProvidersService, DeletePublishedProvidersService>();
            serviceCollection.AddSingleton <IDeleteFundingSearchDocumentsService, DeleteFundingSearchDocumentsService>();
            serviceCollection.AddSingleton <IDeselectSpecificationForFundingService, DeselectSpecificationForFundingService>();
            serviceCollection.AddSingleton <IDeletePublishedFundingBlobDocumentsService, DeletePublishedFundingBlobDocumentsService>();
            serviceCollection.AddSingleton <IPublishedProviderFundingStructureService, PublishedProviderFundingStructureService>();

            PolicySettings policySettings = ServiceCollectionExtensions.GetPolicySettings(configuration);
            OrganisationGroupResiliencePolicies organisationResiliencePolicies = CreateResiliencePolicies(policySettings);

            serviceCollection.AddSingleton <IOrganisationGroupResiliencePolicies>(organisationResiliencePolicies);
            serviceCollection.AddSingleton <IOrganisationGroupTargetProviderLookup, OrganisationGroupTargetProviderLookup>();
            serviceCollection.AddSingleton <IOrganisationGroupGenerator, OrganisationGroupGenerator>();

            serviceCollection.AddSingleton <IJobsRunning, JobsRunning>();
            serviceCollection.AddSingleton <ICalculationPrerequisiteCheckerService, CalculationPrerequisiteCheckerService>();

            serviceCollection.AddScoped <IPrerequisiteCheckerLocator, PrerequisiteCheckerLocator>();
            serviceCollection.AddScoped <IPrerequisiteChecker, RefreshPrerequisiteChecker>();
            serviceCollection.AddScoped <IPrerequisiteChecker, PublishAllPrerequisiteChecker>();
            serviceCollection.AddScoped <IPrerequisiteChecker, PublishBatchPrerequisiteChecker>();
            serviceCollection.AddScoped <IPrerequisiteChecker, ApproveAllProvidersPrerequisiteChecker>();
            serviceCollection.AddScoped <IPrerequisiteChecker, ApproveBatchProvidersPrerequisiteChecker>();

            serviceCollection.AddSingleton <IPublishedFundingChangeDetectorService, PublishedFundingChangeDetectorService>();

            serviceCollection.AddSingleton <IPublishedFundingGenerator, PublishedFundingGenerator>();

            SearchRepositorySettings searchSettings = new SearchRepositorySettings
            {
                SearchServiceName = configuration.GetValue <string>("SearchServiceName"),
                SearchKey         = configuration.GetValue <string>("SearchServiceKey")
            };

            serviceCollection.AddSingleton(searchSettings);
            serviceCollection.AddSingleton <ISearchRepository <PublishedFundingIndex>, SearchRepository <PublishedFundingIndex> >();
            serviceCollection.AddSingleton <IPublishedFundingContentsPersistanceService>((ctx) =>
            {
                BlobStorageOptions storageSettings = new BlobStorageOptions();

                configuration.Bind("AzureStorageSettings", storageSettings);

                storageSettings.ContainerName = "publishedfunding";

                IBlobContainerRepository blobContainerRepository = new BlobContainerRepository(storageSettings);

                IBlobClient blobClient = new BlobClient(blobContainerRepository);

                IPublishedFundingContentsGeneratorResolver publishedFundingContentsGeneratorResolver = ctx.GetService <IPublishedFundingContentsGeneratorResolver>();

                ISearchRepository <PublishedFundingIndex> searchRepository = ctx.GetService <ISearchRepository <PublishedFundingIndex> >();

                IPublishingResiliencePolicies publishingResiliencePolicies = ctx.GetService <IPublishingResiliencePolicies>();

                return(new PublishedFundingContentsPersistanceService(publishedFundingContentsGeneratorResolver,
                                                                      blobClient,
                                                                      publishingResiliencePolicies,
                                                                      ctx.GetService <IPublishingEngineOptions>()));
            });
        }