Пример #1
0
        private void InjectMotorVehicle(IServiceCollection services)
        {
            services.AddScoped <IHandleSimulationRequests <MotorVehicleSimulationCaseRequest>,
                                SimulationRequestHandler <
                                    MotorVehicleSimulationCase,
                                    MotorVehicleSimulationCaseRequest,
                                    MotorVehiclePerson
                                    >
                                >();

            services.AddScoped <
                IBuildSimulations <
                    MotorVehicleSimulationCase,
                    MotorVehicleSimulationCaseRequest
                    >,
                MotorVehicleSimulationBuilder>();

            services.AddScoped <IStorePersons <MotorVehiclePerson>,
                                MotorVehiclePersonStore>();

            services.AddScoped <IRunSimulations <MotorVehicleSimulationCase, MotorVehiclePerson>,
                                SimulationRunner <MotorVehicleSimulationCase, MotorVehiclePerson> >();

            services.AddScoped <IRunCases <MotorVehicleSimulationCase, MotorVehiclePerson>,
                                MotorVehicleCaseRunner>();

            services.AddScoped <IExecuteRules <MotorVehicleSimulationCase, MotorVehiclePerson>,
                                MotorVehicleRuleExecutor>();

            services.AddScoped <IGetSimulations <MotorVehicleSimulationCase>, MotorVehicleSimulationGetter>();

            services.AddScoped <ISimulationLib <MotorVehicleSimulationCase>, SimulationLib <MotorVehicleSimulationCase> >();

            services.AddScoped <IStoreSimulations <MotorVehicleSimulationCase>, MotorVehicleSimulationStore>();


            // OpenFisca
            services.AddScoped <IOpenFisca, OpenFiscaLib>();
            services.AddScoped <IRestClient, MyRestClient>();

            // OpenFisca options
            var openFiscaUrl = Configuration["OpenFiscaOptions:Url"] ??
                               Environment.GetEnvironmentVariable("openFiscaUrl");
            var openFiscaOptions = new OpenFiscaOptions()
            {
                Url = openFiscaUrl
            };

            services.AddSingleton <IOptions <OpenFiscaOptions> >(x => Options.Create(openFiscaOptions));

            services.AddScoped <IBuildDailyRequests, DailyRequestBuilder>();
            services.AddScoped <IBuildAggregateRequests, AggregateRequestBuilder>();
            services.AddScoped <IExtractDailyResults, DailyResultExtractor>();
            services.AddScoped <IExtractAggregateResults, AggregateResultExtractor>();
        }
Пример #2
0
        private void InjectOpenFisca(IServiceCollection services)
        {
            // OpenFisca
            services.AddScoped <IOpenFisca, OpenFiscaLib>();
            services.AddScoped <IRestClient, RestSharp.RestClient>();

            // OpenFisca options
            var openFiscaUrl = Configuration.GetValue <string>("OpenFiscaOptions:Url") ??
                               Environment.GetEnvironmentVariable("OPEN_FISCA_URL");

            var openFiscaOptions = new OpenFiscaOptions()
            {
                Url = openFiscaUrl
            };

            services.AddSingleton <IOptions <OpenFiscaOptions> >(x => Options.Create(openFiscaOptions));
        }
        private MotorVehicleRuleExecutor GetSystem()
        {
            var restClient       = new RestClient();
            var openFiscaOptions = new OpenFiscaOptions()
            {
                Url = "https://openfiscacanada-dts-csps-main.dev.dts-stn.com"
            };
            var options = Options.Create(openFiscaOptions);

            var openFiscaLib = new OpenFiscaLib(restClient, options);

            var dailyRequestBuilder      = new DailyRequestBuilder();
            var dailyResultExtractor     = new DailyResultExtractor();
            var aggregateRequestBuilder  = new AggregateRequestBuilder();
            var aggregateResultExtractor = new AggregateResultExtractor();
            var executor = new MotorVehicleRuleExecutor(openFiscaLib, dailyRequestBuilder, aggregateRequestBuilder, dailyResultExtractor, aggregateResultExtractor);

            return(executor);
        }