public void Initialize() { _calculationEngine = Substitute.For <ICalculationEngine>(); _providersApiClient = Substitute.For <IProvidersApiClient>(); _specificationsApiClient = Substitute.For <ISpecificationsApiClient>(); _providerSourceDatasetsRepository = Substitute.For <IProviderSourceDatasetsRepository>(); _calculationAggregationService = Substitute.For <ICalculationAggregationService>(); _calculationsRepository = Substitute.For <ICalculationsRepository>(); _logger = Substitute.For <ILogger>(); _mapper = CreateMapper(); _calculatorResiliencePolicies = new CalculatorResiliencePolicies { SpecificationsApiClient = Policy.NoOpAsync(), ProvidersApiClient = Policy.NoOpAsync(), CalculationsApiClient = Policy.NoOpAsync() }; _calculationEnginePreviewService = new CalculationEnginePreviewService( _calculationEngine, _providersApiClient, _mapper, _calculatorResiliencePolicies, _specificationsApiClient, _providerSourceDatasetsRepository, _calculationAggregationService, _calculationsRepository, _logger); }
public CalculationEnginePreviewService( ICalculationEngine calculationEngine, IProvidersApiClient providersApiClient, IMapper mapper, ICalculatorResiliencePolicies resiliencePolicies, ISpecificationsApiClient specificationsApiClient, IProviderSourceDatasetsRepository providerSourceDatasetsRepository, ICalculationAggregationService calculationAggregationService, ICalculationsRepository calculationsRepository, ILogger logger) { Guard.ArgumentNotNull(calculationEngine, nameof(calculationEngine)); Guard.ArgumentNotNull(providersApiClient, nameof(providersApiClient)); Guard.ArgumentNotNull(mapper, nameof(mapper)); Guard.ArgumentNotNull(providerSourceDatasetsRepository, nameof(providerSourceDatasetsRepository)); Guard.ArgumentNotNull(calculationAggregationService, nameof(calculationAggregationService)); Guard.ArgumentNotNull(calculationsRepository, nameof(calculationsRepository)); Guard.ArgumentNotNull(logger, nameof(logger)); Guard.ArgumentNotNull(resiliencePolicies, nameof(resiliencePolicies)); Guard.ArgumentNotNull(resiliencePolicies.SpecificationsApiClient, nameof(resiliencePolicies.SpecificationsApiClient)); Guard.ArgumentNotNull(resiliencePolicies.ProvidersApiClient, nameof(resiliencePolicies.ProvidersApiClient)); Guard.ArgumentNotNull(resiliencePolicies.CalculationsApiClient, nameof(resiliencePolicies.CalculationsApiClient)); _calculationEngine = calculationEngine; _providersApiClient = providersApiClient; _mapper = mapper; _specificationsApiClient = specificationsApiClient; _providerSourceDatasetsRepository = providerSourceDatasetsRepository; _calculationAggregationService = calculationAggregationService; _specificationsApiPolicy = resiliencePolicies.SpecificationsApiClient; _providersApiClientPolicy = resiliencePolicies.ProvidersApiClient; _calculationsApiClientPolicy = resiliencePolicies.CalculationsApiClient; _calculationsRepository = calculationsRepository; _logger = logger; }
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(); }