Exemplo n.º 1
0
        public ResultsService(ILogger logger,
                              IFeatureToggle featureToggle,
                              ICalculationResultsRepository resultsRepository,
                              IMapper mapper,
                              ISearchRepository <ProviderIndex> searchRepository,
                              ITelemetry telemetry,
                              IProviderSourceDatasetRepository providerSourceDatasetRepository,
                              ISearchRepository <ProviderCalculationResultsIndex> calculationProviderResultsSearchRepository,
                              ISpecificationsRepository specificationsRepository,
                              IResultsResiliencePolicies resiliencePolicies,
                              IProviderImportMappingService providerImportMappingService,
                              ICacheProvider cacheProvider,
                              IMessengerService messengerService,
                              ICalculationsRepository calculationRepository,
                              IValidator <MasterProviderModel> masterProviderModelValidator,
                              IBlobClient blobClient)
        {
            Guard.ArgumentNotNull(resultsRepository, nameof(resultsRepository));
            Guard.ArgumentNotNull(mapper, nameof(mapper));
            Guard.ArgumentNotNull(searchRepository, nameof(searchRepository));
            Guard.ArgumentNotNull(telemetry, nameof(telemetry));
            Guard.ArgumentNotNull(providerSourceDatasetRepository, nameof(providerSourceDatasetRepository));
            Guard.ArgumentNotNull(calculationProviderResultsSearchRepository, nameof(calculationProviderResultsSearchRepository));
            Guard.ArgumentNotNull(specificationsRepository, nameof(specificationsRepository));
            Guard.ArgumentNotNull(resiliencePolicies, nameof(resiliencePolicies));
            Guard.ArgumentNotNull(providerImportMappingService, nameof(providerImportMappingService));
            Guard.ArgumentNotNull(cacheProvider, nameof(cacheProvider));
            Guard.ArgumentNotNull(messengerService, nameof(messengerService));
            Guard.ArgumentNotNull(calculationRepository, nameof(calculationRepository));
            Guard.ArgumentNotNull(masterProviderModelValidator, nameof(masterProviderModelValidator));
            Guard.ArgumentNotNull(featureToggle, nameof(featureToggle));
            Guard.ArgumentNotNull(blobClient, nameof(blobClient));

            _logger            = logger;
            _resultsRepository = resultsRepository;
            _mapper            = mapper;
            _searchRepository  = searchRepository;
            _telemetry         = telemetry;
            _providerSourceDatasetRepository            = providerSourceDatasetRepository;
            _calculationProviderResultsSearchRepository = calculationProviderResultsSearchRepository;
            _resultsRepositoryPolicy        = resiliencePolicies.ResultsRepository;
            _specificationsRepository       = specificationsRepository;
            _resultsSearchRepositoryPolicy  = resiliencePolicies.ResultsSearchRepository;
            _specificationsRepositoryPolicy = resiliencePolicies.SpecificationsRepository;
            _providerImportMappingService   = providerImportMappingService;
            _cacheProvider                = cacheProvider;
            _messengerService             = messengerService;
            _calculationRepository        = calculationRepository;
            _masterProviderModelValidator = masterProviderModelValidator;
            _calculationsRepositoryPolicy = resiliencePolicies.CalculationsRepository;
            _featureToggle                = featureToggle;
            _blobClient       = blobClient;
            _blobClientPolicy = resiliencePolicies.CsvBlobPolicy;
        }
        public ResultsService(ILogger logger,
                              IFeatureToggle featureToggle,
                              ICalculationResultsRepository resultsRepository,
                              IProviderSourceDatasetRepository providerSourceDatasetRepository,
                              ISearchRepository <ProviderCalculationResultsIndex> calculationProviderResultsSearchRepository,
                              ISpecificationsApiClient specificationsApiClient,
                              ICalculationsApiClient calculationsApiClient,
                              IResultsResiliencePolicies resiliencePolicies,
                              ICalculationsRepository calculationRepository,
                              IMapper mapper,
                              IJobManagement jobManagement,
                              IBlobClient blobClient) : base(jobManagement, logger)
        {
            Guard.ArgumentNotNull(resultsRepository, nameof(resultsRepository));
            Guard.ArgumentNotNull(providerSourceDatasetRepository, nameof(providerSourceDatasetRepository));
            Guard.ArgumentNotNull(calculationProviderResultsSearchRepository, nameof(calculationProviderResultsSearchRepository));
            Guard.ArgumentNotNull(specificationsApiClient, nameof(specificationsApiClient));
            Guard.ArgumentNotNull(calculationsApiClient, nameof(calculationsApiClient));
            Guard.ArgumentNotNull(resiliencePolicies?.ResultsRepository, nameof(resiliencePolicies.ResultsRepository));
            Guard.ArgumentNotNull(resiliencePolicies?.ResultsSearchRepository, nameof(resiliencePolicies.ResultsSearchRepository));
            Guard.ArgumentNotNull(resiliencePolicies?.SpecificationsApiClient, nameof(resiliencePolicies.SpecificationsApiClient));
            Guard.ArgumentNotNull(resiliencePolicies?.CalculationsApiClient, nameof(resiliencePolicies.CalculationsApiClient));
            Guard.ArgumentNotNull(resiliencePolicies?.CalculationsRepository, nameof(resiliencePolicies.CalculationsRepository));
            Guard.ArgumentNotNull(resiliencePolicies?.BlobClient, nameof(resiliencePolicies.BlobClient));
            Guard.ArgumentNotNull(calculationRepository, nameof(calculationRepository));
            Guard.ArgumentNotNull(featureToggle, nameof(featureToggle));
            Guard.ArgumentNotNull(mapper, nameof(mapper));
            Guard.ArgumentNotNull(blobClient, nameof(blobClient));

            _logger            = logger;
            _mapper            = mapper;
            _resultsRepository = resultsRepository;
            _providerSourceDatasetRepository            = providerSourceDatasetRepository;
            _calculationProviderResultsSearchRepository = calculationProviderResultsSearchRepository;
            _resultsRepositoryPolicy       = resiliencePolicies.ResultsRepository;
            _specificationsApiClient       = specificationsApiClient;
            _calculationsApiClient         = calculationsApiClient;
            _resultsSearchRepositoryPolicy = resiliencePolicies.ResultsSearchRepository;
            _specificationsApiClientPolicy = resiliencePolicies.SpecificationsApiClient;
            _calculationsApiClientPolicy   = resiliencePolicies.CalculationsApiClient;
            _blobClientPolicy             = resiliencePolicies.BlobClient;
            _calculationRepository        = calculationRepository;
            _calculationsRepositoryPolicy = resiliencePolicies.CalculationsRepository;
            _featureToggle = featureToggle;
            _blobClient    = blobClient;
        }
 protected DatasetService CreateDatasetService(
     IBlobClient blobClient = null,
     ILogger logger         = null,
     IDatasetRepository datasetRepository = null,
     IValidator <CreateNewDatasetModel> createNewDatasetModelValidator         = null,
     IValidator <DatasetVersionUpdateModel> datasetVersionUpdateModelValidator = null,
     IMapper mapper = null,
     IValidator <DatasetMetadataModel> datasetMetadataModelValidator = null,
     ISearchRepository <DatasetIndex> searchRepository             = null,
     ISearchRepository <DatasetVersionIndex> datasetVersionIndex   = null,
     IValidator <GetDatasetBlobModel> getDatasetBlobModelValidator = null,
     ICacheProvider cacheProvider     = null,
     ICalcsRepository calcsRepository = null,
     IValidator <ExcelPackage> datasetWorksheetValidator = null,
     IValidator <DatasetUploadValidationModel> datasetUploadValidator = null,
     IProvidersApiClient providersApiClient = null,
     IJobManagement jobManagement           = null,
     IProviderSourceDatasetRepository providerSourceDatasetRepository = null,
     ISpecificationsApiClient specificationsApiClient = null,
     IPolicyRepository policyRepository = null,
     IDatasetDataMergeService datasetDataMergeService = null)
 {
     return(new DatasetService(
                blobClient ?? CreateBlobClient(),
                logger ?? CreateLogger(),
                datasetRepository ?? CreateDatasetsRepository(),
                createNewDatasetModelValidator ?? CreateNewDatasetModelValidator(),
                datasetVersionUpdateModelValidator ?? CreateDatasetVersionUpdateModelValidator(),
                mapper ?? CreateMapper(),
                datasetMetadataModelValidator ?? CreateDatasetMetadataModelValidator(),
                searchRepository ?? CreateSearchRepository(),
                getDatasetBlobModelValidator ?? CreateGetDatasetBlobModelValidator(),
                cacheProvider ?? CreateCacheProvider(),
                datasetWorksheetValidator ?? CreateDataWorksheetValidator(),
                datasetUploadValidator ?? CreateDatasetUploadValidator(),
                DatasetsResilienceTestHelper.GenerateTestPolicies(),
                datasetVersionIndex ?? CreateDatasetVersionRepository(),
                providersApiClient ?? CreateProvidersApiClient(),
                jobManagement ?? CreateJobManagement(),
                providerSourceDatasetRepository ?? CreateProviderSourceDatasetRepository(),
                specificationsApiClient ?? CreateSpecificationsApiClient(),
                policyRepository ?? CreatePolicyRepository(),
                datasetDataMergeService ?? CreateDatasetDataMergeService()));
 }