Beispiel #1
0
        public DatasetDefinitionFieldChangesProcessor(
            IFeatureToggle featureToggle,
            IDatasetsApiClient datasetsApiClient,
            ICalcsResiliencePolicies resiliencePolicies,
            ILogger logger,
            ICalculationService calculationService,
            ICalculationsRepository calculationsRepository,
            IMapper mapper)
        {
            Guard.ArgumentNotNull(featureToggle, nameof(featureToggle));
            Guard.ArgumentNotNull(datasetsApiClient, nameof(datasetsApiClient));
            Guard.ArgumentNotNull(resiliencePolicies, nameof(resiliencePolicies));
            Guard.ArgumentNotNull(logger, nameof(logger));
            Guard.ArgumentNotNull(calculationService, nameof(calculationService));
            Guard.ArgumentNotNull(calculationsRepository, nameof(calculationsRepository));
            Guard.ArgumentNotNull(resiliencePolicies?.CalculationsRepository, nameof(resiliencePolicies.CalculationsRepository));
            Guard.ArgumentNotNull(resiliencePolicies?.DatasetsApiClient, nameof(resiliencePolicies.DatasetsApiClient));
            Guard.ArgumentNotNull(mapper, nameof(mapper));

            _featureToggle           = featureToggle;
            _datasetsApiClient       = datasetsApiClient;
            _datasetsApiClientPolicy = resiliencePolicies.DatasetsApiClient;
            _logger                       = logger;
            _calculationService           = calculationService;
            _calculationsRepository       = calculationsRepository;
            _calculationsRepositoryPolicy = resiliencePolicies.CalculationsRepository;
            _mapper                       = mapper;

            _typeIdentifierGenerator = new VisualBasicTypeIdentifierGenerator();
        }
Beispiel #2
0
        public CreateCalculationService(ICalculationNameInUseCheck calculationNameInUseCheck,
                                        ICalculationsRepository calculationsRepository,
                                        IVersionRepository <CalculationVersion> calculationVersionRepository,
                                        ICalcsResiliencePolicies calculationsResiliencePolicies,
                                        IValidator <CalculationCreateModel> calculationCreateModelValidator,
                                        ICacheProvider cacheProvider,
                                        ISearchRepository <CalculationIndex> searchRepository,
                                        ILogger logger,
                                        IInstructionAllocationJobCreation instructionAllocationJobCreation)
        {
            Guard.ArgumentNotNull(searchRepository, nameof(searchRepository));
            Guard.ArgumentNotNull(calculationNameInUseCheck, nameof(calculationNameInUseCheck));
            Guard.ArgumentNotNull(calculationsRepository, nameof(calculationsRepository));
            Guard.ArgumentNotNull(calculationVersionRepository, nameof(calculationVersionRepository));
            Guard.ArgumentNotNull(cacheProvider, nameof(cacheProvider));
            Guard.ArgumentNotNull(calculationsResiliencePolicies?.CacheProviderPolicy, nameof(calculationsResiliencePolicies.CacheProviderPolicy));
            Guard.ArgumentNotNull(calculationsResiliencePolicies?.CalculationsRepository, nameof(calculationsResiliencePolicies.CalculationsRepository));
            Guard.ArgumentNotNull(calculationsResiliencePolicies?.CalculationsVersionsRepositoryPolicy, nameof(calculationsResiliencePolicies.CalculationsVersionsRepositoryPolicy));

            _calculationNameInUseCheck    = calculationNameInUseCheck;
            _calculationsRepository       = calculationsRepository;
            _calculationVersionRepository = calculationVersionRepository;
            _logger = logger;
            _instructionAllocationJobCreation = instructionAllocationJobCreation;
            _searchRepository = searchRepository;
            _cacheProvider    = cacheProvider;
            _calculationCreateModelValidator     = calculationCreateModelValidator;
            _calculationVersionsRepositoryPolicy = calculationsResiliencePolicies.CalculationsVersionsRepositoryPolicy;
            _calculationRepositoryPolicy         = calculationsResiliencePolicies.CalculationsRepository;
            _cachePolicy = calculationsResiliencePolicies.CacheProviderPolicy;

            _typeIdentifierGenerator = new VisualBasicTypeIdentifierGenerator();
        }
Beispiel #3
0
        public DefinitionSpecificationRelationshipService(IDatasetRepository datasetRepository,
                                                          ILogger logger,
                                                          ISpecificationsApiClient specificationsApiClient,
                                                          IValidator <CreateDefinitionSpecificationRelationshipModel> relationshipModelValidator,
                                                          IMessengerService messengerService,
                                                          ICalcsRepository calcsRepository,
                                                          ICacheProvider cacheProvider,
                                                          IDatasetsResiliencePolicies datasetsResiliencePolicies,
                                                          IJobManagement jobManagement,
                                                          IDateTimeProvider dateTimeProvider)
        {
            Guard.ArgumentNotNull(dateTimeProvider, nameof(dateTimeProvider));
            Guard.ArgumentNotNull(datasetRepository, nameof(datasetRepository));
            Guard.ArgumentNotNull(logger, nameof(logger));
            Guard.ArgumentNotNull(specificationsApiClient, nameof(specificationsApiClient));
            Guard.ArgumentNotNull(relationshipModelValidator, nameof(relationshipModelValidator));
            Guard.ArgumentNotNull(messengerService, nameof(messengerService));
            Guard.ArgumentNotNull(calcsRepository, nameof(calcsRepository));
            Guard.ArgumentNotNull(cacheProvider, nameof(cacheProvider));
            Guard.ArgumentNotNull(jobManagement, nameof(jobManagement));
            Guard.ArgumentNotNull(datasetsResiliencePolicies?.SpecificationsApiClient, nameof(datasetsResiliencePolicies.SpecificationsApiClient));

            _datasetRepository             = datasetRepository;
            _logger                        = logger;
            _specificationsApiClient       = specificationsApiClient;
            _relationshipModelValidator    = relationshipModelValidator;
            _messengerService              = messengerService;
            _calcsRepository               = calcsRepository;
            _cacheProvider                 = cacheProvider;
            _jobManagement                 = jobManagement;
            _dateTimeProvider              = dateTimeProvider;
            _specificationsApiClientPolicy = datasetsResiliencePolicies.SpecificationsApiClient;

            _typeIdentifierGenerator = new VisualBasicTypeIdentifierGenerator();
        }
Beispiel #4
0
        public DatasetDefinitionValidator(
            IPolicyRepository policyRepository,
            IDatasetRepository datasetRepository,
            IDatasetsResiliencePolicies datasetsResiliencePolicies)
        {
            _policyRepository         = policyRepository;
            _datasetRepository        = datasetRepository;
            _datasetsRepositoryPolicy = datasetsResiliencePolicies.DatasetRepository;
            _typeIdentifierGenerator  = new VisualBasicTypeIdentifierGenerator();

            RuleFor(model => model.FundingStreamId)
            .CustomAsync(async(name, context, ct) =>
            {
                DatasetDefinition model = context.ParentContext.InstanceToValidate as DatasetDefinition;
                if (string.IsNullOrWhiteSpace(model.FundingStreamId))
                {
                    context.AddFailure("You must give a Funding Stream Id for the dataset");
                }
                else
                {
                    IEnumerable <PoliciesApiModels.FundingStream> fundingStreams = _policyRepository.GetFundingStreams().Result;

                    if (fundingStreams != null && !fundingStreams.Any(_ => _.Id == model.FundingStreamId))
                    {
                        context.AddFailure($"Unable to find given funding stream ID: {model.FundingStreamId}");
                    }
                }

                bool datasetWithGivenNameExists =
                    await _datasetsRepositoryPolicy.ExecuteAsync(() => _datasetRepository.DatasetExistsWithGivenName(model.Name, model.Id));

                if (datasetWithGivenNameExists)
                {
                    context.AddFailure($"Given dataset name already exists in repository: {model.Name}");
                }

                IDictionary <string, string> fieldIdentifierNameMap = new Dictionary <string, string>();

                IEnumerable <FieldDefinition> fieldDefinitions = model.TableDefinitions?.SelectMany(_ => _.FieldDefinitions);

                if (fieldDefinitions != null)
                {
                    foreach (FieldDefinition fieldDefinition in fieldDefinitions)
                    {
                        string fieldDefinitionNameIdentifier = _typeIdentifierGenerator.GenerateIdentifier(fieldDefinition.Name);

                        if (fieldIdentifierNameMap.ContainsKey(fieldDefinitionNameIdentifier))
                        {
                            context.AddFailure($"Given field definition name matches another field definition name. " +
                                               $"{fieldIdentifierNameMap[fieldDefinitionNameIdentifier]} and {fieldDefinition.Name}");
                        }
                        else
                        {
                            fieldIdentifierNameMap.Add(fieldDefinitionNameIdentifier, fieldDefinition.Name);
                        }
                    }
                }
            });
        }
        public DatasetReferenceService(
            ILogger logger)
        {
            Guard.ArgumentNotNull(logger, nameof(logger));
            _logger = logger;

            _typeIdentifierGenerator = new VisualBasicTypeIdentifierGenerator();
        }
        public VisualBasicSourceFileGenerator(ILogger logger,
                                              IFundingLineRoundingSettings fundingLineRoundingSettings) : base(logger)
        {
            Guard.ArgumentNotNull(fundingLineRoundingSettings, nameof(fundingLineRoundingSettings));

            _fundingLineRoundingSettings = fundingLineRoundingSettings;

            _typeIdentifierGenerator = new VisualBasicTypeIdentifierGenerator();
        }
        public CalculationTypeGenerator(CompilerOptions compilerOptions,
                                        IFundingLineRoundingSettings fundingLineRoundingSettings)
        {
            Guard.ArgumentNotNull(compilerOptions, nameof(compilerOptions));
            Guard.ArgumentNotNull(fundingLineRoundingSettings, nameof(fundingLineRoundingSettings));

            _compilerOptions             = compilerOptions;
            _fundingLineRoundingSettings = fundingLineRoundingSettings;

            _typeIdentifierGenerator = new VisualBasicTypeIdentifierGenerator();
        }
        public CalculationNameInUseCheck(ICalculationsRepository calculationsRepository,
                                         ISpecificationsApiClient specificationsApiClient,
                                         ICalcsResiliencePolicies resiliencePolicies)
        {
            Guard.ArgumentNotNull(calculationsRepository, nameof(calculationsRepository));
            Guard.ArgumentNotNull(specificationsApiClient, nameof(specificationsApiClient));
            Guard.ArgumentNotNull(resiliencePolicies?.CalculationsRepository, nameof(resiliencePolicies.CalculationsRepository));
            Guard.ArgumentNotNull(resiliencePolicies?.SpecificationsApiClient, nameof(resiliencePolicies.SpecificationsApiClient));

            _calculationsRepository        = calculationsRepository;
            _specificationsApiClient       = specificationsApiClient;
            _specificationsApiClientPolicy = resiliencePolicies.SpecificationsRepositoryPolicy;
            _calculationRepositoryPolicy   = resiliencePolicies.CalculationsRepository;

            _typeIdentifierGenerator = new VisualBasicTypeIdentifierGenerator();
        }
Beispiel #9
0
        public ScenariosService(
            ILogger logger,
            IScenariosRepository scenariosRepository,
            ISpecificationsApiClient specificationsApiClient,
            IValidator <CreateNewTestScenarioVersion> createNewTestScenarioVersionValidator,
            ISearchRepository <ScenarioIndex> searchRepository,
            ICacheProvider cacheProvider,
            IVersionRepository <TestScenarioVersion> versionRepository,
            IJobManagement jobManagement,
            ICalcsRepository calcsRepository,
            IScenariosResiliencePolicies scenariosResiliencePolicies)
        {
            Guard.ArgumentNotNull(logger, nameof(logger));
            Guard.ArgumentNotNull(scenariosRepository, nameof(scenariosRepository));
            Guard.ArgumentNotNull(specificationsApiClient, nameof(specificationsApiClient));
            Guard.ArgumentNotNull(createNewTestScenarioVersionValidator, nameof(createNewTestScenarioVersionValidator));
            Guard.ArgumentNotNull(searchRepository, nameof(searchRepository));
            Guard.ArgumentNotNull(cacheProvider, nameof(cacheProvider));
            Guard.ArgumentNotNull(versionRepository, nameof(versionRepository));
            Guard.ArgumentNotNull(jobManagement, nameof(jobManagement));
            Guard.ArgumentNotNull(calcsRepository, nameof(calcsRepository));
            Guard.ArgumentNotNull(scenariosResiliencePolicies?.CalcsRepository, nameof(scenariosResiliencePolicies.CalcsRepository));
            Guard.ArgumentNotNull(scenariosResiliencePolicies?.ScenariosRepository, nameof(scenariosResiliencePolicies.ScenariosRepository));
            Guard.ArgumentNotNull(scenariosResiliencePolicies?.SpecificationsApiClient, nameof(scenariosResiliencePolicies.SpecificationsApiClient));

            _scenariosRepository = scenariosRepository;
            _logger = logger;
            _specificationsApiClient = specificationsApiClient;
            _createNewTestScenarioVersionValidator = createNewTestScenarioVersionValidator;
            _searchRepository              = searchRepository;
            _cacheProvider                 = cacheProvider;
            _cacheProvider                 = cacheProvider;
            _versionRepository             = versionRepository;
            _jobManagement                 = jobManagement;
            _calcsRepository               = calcsRepository;
            _calcsRepositoryPolicy         = scenariosResiliencePolicies.CalcsRepository;
            _scenariosRepositoryPolicy     = scenariosResiliencePolicies.ScenariosRepository;
            _specificationsApiClientPolicy = scenariosResiliencePolicies.SpecificationsApiClient;

            _typeIdentifierGenerator = new VisualBasicTypeIdentifierGenerator();
        }
Beispiel #10
0
        public PreviewService(
            ILogger logger,
            IBuildProjectsService buildProjectsService,
            IValidator <PreviewRequest> previewRequestValidator,
            ICalculationsRepository calculationsRepository,
            IDatasetsApiClient datasetsApiClient,
            ICacheProvider cacheProvider,
            ISourceCodeService sourceCodeService,
            ICalcsResiliencePolicies resiliencePolicies,
            IMapper mapper,
            ICalcEngineApiClient calcEngineApiClient)
        {
            Guard.ArgumentNotNull(logger, nameof(logger));
            Guard.ArgumentNotNull(buildProjectsService, nameof(buildProjectsService));
            Guard.ArgumentNotNull(previewRequestValidator, nameof(previewRequestValidator));
            Guard.ArgumentNotNull(calculationsRepository, nameof(calculationsRepository));
            Guard.ArgumentNotNull(datasetsApiClient, nameof(datasetsApiClient));
            Guard.ArgumentNotNull(cacheProvider, nameof(cacheProvider));
            Guard.ArgumentNotNull(sourceCodeService, nameof(sourceCodeService));
            Guard.ArgumentNotNull(resiliencePolicies, nameof(resiliencePolicies));
            Guard.ArgumentNotNull(mapper, nameof(mapper));
            Guard.ArgumentNotNull(resiliencePolicies.DatasetsApiClient, nameof(resiliencePolicies.DatasetsApiClient));
            Guard.ArgumentNotNull(resiliencePolicies.CalcEngineApiClient, nameof(resiliencePolicies.CalcEngineApiClient));
            Guard.ArgumentNotNull(calcEngineApiClient, nameof(calcEngineApiClient));

            _logger = logger;
            _buildProjectsService    = buildProjectsService;
            _previewRequestValidator = previewRequestValidator;
            _calculationsRepository  = calculationsRepository;
            _datasetsApiClient       = datasetsApiClient;
            _cacheProvider           = cacheProvider;
            _sourceCodeService       = sourceCodeService;
            _datasetsApiClientPolicy = resiliencePolicies.DatasetsApiClient;
            _mapper = mapper;
            _calcEngineApiClient       = calcEngineApiClient;
            _calcEngineApiClientPolicy = resiliencePolicies.CalcEngineApiClient;

            _typeIdentifierGenerator = new VisualBasicTypeIdentifierGenerator();
        }
 public VisualBasicTypeGenerator()
 {
     _typeIdentifierGenerator = new VisualBasicTypeIdentifierGenerator();
 }
 public CalculationNamespaceBuilder(CompilerOptions compilerOptions)
 {
     _compilerOptions         = compilerOptions;
     _typeIdentifierGenerator = new VisualBasicTypeIdentifierGenerator();
 }
        public CalculationEngineService(
            ILogger logger,
            ICalculationEngine calculationEngine,
            ICacheProvider cacheProvider,
            IMessengerService messengerService,
            IProviderSourceDatasetsRepository providerSourceDatasetsRepository,
            ITelemetry telemetry,
            IProviderResultsRepository providerResultsRepository,
            ICalculationsRepository calculationsRepository,
            EngineSettings engineSettings,
            ICalculatorResiliencePolicies resiliencePolicies,
            IJobManagement jobManagement,
            ISpecificationsApiClient specificationsApiClient,
            IResultsApiClient resultsApiClient,
            IValidator <ICalculatorResiliencePolicies> calculatorResiliencePoliciesValidator,
            ICalculationEngineServiceValidator calculationEngineServiceValidator,
            ICalculationAggregationService calculationAggregationService,
            IAssemblyService assemblyService) : base(jobManagement, logger)
        {
            Guard.ArgumentNotNull(logger, nameof(logger));
            Guard.ArgumentNotNull(calculationEngine, nameof(calculationEngine));
            Guard.ArgumentNotNull(cacheProvider, nameof(cacheProvider));
            Guard.ArgumentNotNull(messengerService, nameof(messengerService));
            Guard.ArgumentNotNull(providerSourceDatasetsRepository, nameof(providerSourceDatasetsRepository));
            Guard.ArgumentNotNull(telemetry, nameof(telemetry));
            Guard.ArgumentNotNull(providerResultsRepository, nameof(providerResultsRepository));
            Guard.ArgumentNotNull(calculationsRepository, nameof(calculationsRepository));
            Guard.ArgumentNotNull(engineSettings, nameof(engineSettings));
            Guard.ArgumentNotNull(resiliencePolicies?.SpecificationsApiClient, nameof(resiliencePolicies.SpecificationsApiClient));
            Guard.ArgumentNotNull(resiliencePolicies?.CacheProvider, nameof(resiliencePolicies.CacheProvider));
            Guard.ArgumentNotNull(resiliencePolicies?.Messenger, nameof(resiliencePolicies.Messenger));
            Guard.ArgumentNotNull(resiliencePolicies?.ProviderSourceDatasetsRepository, nameof(resiliencePolicies.ProviderSourceDatasetsRepository));
            Guard.ArgumentNotNull(resiliencePolicies?.CalculationResultsRepository, nameof(resiliencePolicies.CalculationResultsRepository));
            Guard.ArgumentNotNull(resiliencePolicies?.CalculationsApiClient, nameof(resiliencePolicies.CalculationsApiClient));
            Guard.ArgumentNotNull(resiliencePolicies?.ResultsApiClient, nameof(resiliencePolicies.ResultsApiClient));
            Guard.ArgumentNotNull(specificationsApiClient, nameof(specificationsApiClient));
            Guard.ArgumentNotNull(calculatorResiliencePoliciesValidator, nameof(calculatorResiliencePoliciesValidator));
            Guard.ArgumentNotNull(calculationEngineServiceValidator, nameof(calculationEngineServiceValidator));
            Guard.ArgumentNotNull(resultsApiClient, nameof(resultsApiClient));
            Guard.ArgumentNotNull(calculationAggregationService, nameof(calculationAggregationService));
            Guard.ArgumentNotNull(assemblyService, nameof(assemblyService));

            _calculationEngineServiceValidator = calculationEngineServiceValidator;
            _logger            = logger;
            _calculationEngine = calculationEngine;
            _cacheProvider     = cacheProvider;
            _messengerService  = messengerService;
            _providerSourceDatasetsRepository = providerSourceDatasetsRepository;
            _telemetry = telemetry;
            _providerResultsRepository = providerResultsRepository;
            _calculationsRepository    = calculationsRepository;
            _engineSettings            = engineSettings;
            _cacheProviderPolicy       = resiliencePolicies.CacheProvider;
            _messengerServicePolicy    = resiliencePolicies.Messenger;
            _providerSourceDatasetsRepositoryPolicy = resiliencePolicies.ProviderSourceDatasetsRepository;
            _providerResultsRepositoryPolicy        = resiliencePolicies.CalculationResultsRepository;
            _calculationsApiClientPolicy            = resiliencePolicies.CalculationsApiClient;
            _specificationsApiClient       = specificationsApiClient;
            _specificationsApiPolicy       = resiliencePolicies.SpecificationsApiClient;
            _resultsApiClientPolicy        = resiliencePolicies.ResultsApiClient;
            _resultsApiClient              = resultsApiClient;
            _calculationAggregationService = calculationAggregationService;
            _assemblyService = assemblyService;

            _typeIdentifierGenerator = new VisualBasicTypeIdentifierGenerator();
        }
Beispiel #14
0
 public FundingLineNamespaceBuilder()
 {
     _typeIdentifierGenerator = new VisualBasicTypeIdentifierGenerator();
 }
Beispiel #15
0
        public BuildProjectsService(
            ILogger logger,
            ITelemetry telemetry,
            IProvidersApiClient providersApiClient,
            ICacheProvider cacheProvider,
            ICalculationsRepository calculationsRepository,
            IFeatureToggle featureToggle,
            ICalcsResiliencePolicies resiliencePolicies,
            EngineSettings engineSettings,
            ISourceCodeService sourceCodeService,
            IDatasetsApiClient datasetsApiClient,
            IBuildProjectsRepository buildProjectsRepository,
            ICalculationEngineRunningChecker calculationEngineRunningChecker,
            IJobManagement jobManagement,
            IGraphRepository graphRepository,
            IMapper mapper,
            ISpecificationsApiClient specificationsApiClient,
            IPoliciesApiClient policiesApiClient,
            ISourceFileRepository sourceFileRepository) : base(jobManagement, logger)
        {
            Guard.ArgumentNotNull(logger, nameof(logger));
            Guard.ArgumentNotNull(telemetry, nameof(telemetry));
            Guard.ArgumentNotNull(cacheProvider, nameof(cacheProvider));
            Guard.ArgumentNotNull(calculationsRepository, nameof(calculationsRepository));
            Guard.ArgumentNotNull(featureToggle, nameof(featureToggle));
            Guard.ArgumentNotNull(resiliencePolicies, nameof(resiliencePolicies));
            Guard.ArgumentNotNull(engineSettings, nameof(engineSettings));
            Guard.ArgumentNotNull(sourceCodeService, nameof(sourceCodeService));
            Guard.ArgumentNotNull(datasetsApiClient, nameof(datasetsApiClient));
            Guard.ArgumentNotNull(buildProjectsRepository, nameof(buildProjectsRepository));
            Guard.ArgumentNotNull(providersApiClient, nameof(providersApiClient));
            Guard.ArgumentNotNull(calculationEngineRunningChecker, nameof(calculationEngineRunningChecker));
            Guard.ArgumentNotNull(jobManagement, nameof(jobManagement));
            Guard.ArgumentNotNull(graphRepository, nameof(graphRepository));
            Guard.ArgumentNotNull(resiliencePolicies?.DatasetsApiClient, nameof(resiliencePolicies.DatasetsApiClient));
            Guard.ArgumentNotNull(resiliencePolicies?.ProvidersApiClient, nameof(resiliencePolicies.ProvidersApiClient));
            Guard.ArgumentNotNull(resiliencePolicies?.BuildProjectRepositoryPolicy, nameof(resiliencePolicies.BuildProjectRepositoryPolicy));
            Guard.ArgumentNotNull(resiliencePolicies?.CalculationsRepository, nameof(resiliencePolicies.CalculationsRepository));
            Guard.ArgumentNotNull(mapper, nameof(mapper));
            Guard.ArgumentNotNull(specificationsApiClient, nameof(specificationsApiClient));
            Guard.ArgumentNotNull(resiliencePolicies?.SpecificationsApiClient, nameof(resiliencePolicies.SpecificationsApiClient));
            Guard.ArgumentNotNull(policiesApiClient, nameof(policiesApiClient));
            Guard.ArgumentNotNull(resiliencePolicies?.PoliciesApiClient, nameof(resiliencePolicies.PoliciesApiClient));
            Guard.ArgumentNotNull(sourceFileRepository, nameof(sourceFileRepository));

            _logger                          = logger;
            _telemetry                       = telemetry;
            _providersApiClient              = providersApiClient;
            _providersApiClientPolicy        = resiliencePolicies.ProvidersApiClient;
            _cacheProvider                   = cacheProvider;
            _calculationsRepository          = calculationsRepository;
            _calculationsRepositoryPolicy    = resiliencePolicies.CalculationsRepository;
            _featureToggle                   = featureToggle;
            _engineSettings                  = engineSettings;
            _sourceCodeService               = sourceCodeService;
            _datasetsApiClient               = datasetsApiClient;
            _jobManagement                   = jobManagement;
            _graphRepository                 = graphRepository;
            _datasetsApiClientPolicy         = resiliencePolicies.DatasetsApiClient;
            _buildProjectsRepository         = buildProjectsRepository;
            _buildProjectsRepositoryPolicy   = resiliencePolicies.BuildProjectRepositoryPolicy;
            _calculationEngineRunningChecker = calculationEngineRunningChecker;
            _mapper                          = mapper;
            _specificationsApiClient         = specificationsApiClient;
            _specificationsApiClientPolicy   = resiliencePolicies.SpecificationsApiClient;
            _policiesApiClient               = policiesApiClient;
            _policiesApiClientPolicy         = resiliencePolicies.PoliciesApiClient;
            _sourceFileRepository            = sourceFileRepository;

            _typeIdentifierGenerator = new VisualBasicTypeIdentifierGenerator();
        }