public DopplerCurrencyService( IHttpClientFactory httpClientFactory, IOptionsMonitor <DopplerCurrencyServiceSettings> dopplerCurrencySettings, ILogger <DopplerCurrencyService> logger, TimeZoneJobConfigurations jobConfig, IDbConnectionFactory dbConnectionFactory, IJwtTokenGenerator jwtTokenGenerator) { _dopplerCurrencySettings = dopplerCurrencySettings.CurrentValue; _jobConfig = jobConfig; _logger = logger; _httpClientFactory = httpClientFactory; _dbConnectionFactory = dbConnectionFactory; _jwtTokenGenerator = jwtTokenGenerator; }
public void ConfigureServices(IServiceCollection services) { services.AddHangfire(x => { x.UseSQLiteStorage(); }); var httpClientPolicies = new HttpClientPoliciesSettings(); Configuration.GetSection("HttpClient:Client").Bind(httpClientPolicies); services.AddSingleton(httpClientPolicies); var handlerHttpClient = new HttpClientHandler { ClientCertificateOptions = ClientCertificateOption.Automatic, SslProtocols = SslProtocols.Tls12 }; services.AddHttpClient(httpClientPolicies.ClientName, c => { }) .ConfigurePrimaryHttpMessageHandler(() => handlerHttpClient) .AddTransientHttpErrorPolicy(builder => GetRetryPolicy(httpClientPolicies.Policies.RetryAttemps)); services.Configure <DopplerCurrencyServiceSettings>(Configuration.GetSection(nameof(DopplerCurrencyServiceSettings))); var jobsConfig = new TimeZoneJobConfigurations { TimeZoneJobs = TimeZoneHelper.GetTimeZoneByOperativeSystem(Configuration["TimeZoneJobs"]) }; services.AddSingleton(jobsConfig); services.AddTransient <IDopplerCurrencyService, DopplerCurrencyService>(); services.Configure <DopplerSapConfiguration>(Configuration.GetSection(nameof(DopplerSapConfiguration))); services.AddTransient <IDopplerSapService, DopplerSapService>(); services.AddTransient <IDbConnectionFactory, DbConnectionFactory>(); services.Configure <DopplerBillingJobSettings>(Configuration.GetSection("Jobs:DopplerBillingJobSettings")); services.Configure <DopplerBillingUsJobSettings>(Configuration.GetSection("Jobs:DopplerBillingUsJobSettings")); services.AddTransient <IDopplerRepository, DopplerRepository>(); ConfigureJobsScheduler(); services.AddTransient <JwtSecurityTokenHandler>(); services.Configure <JwtOptions>(Configuration.GetSection(nameof(JwtOptions))); services.AddJwtToken(); services.AddSingleton <IJwtTokenGenerator, JwtTokenGenerator>(); }
public static DopplerCurrencyService CreateSut( IHttpClientFactory httpClientFactory = null, IOptionsMonitor <DopplerCurrencyServiceSettings> dopplerCurrencySettings = null, ILogger <DopplerCurrencyService> loggerCurrencyService = null, TimeZoneJobConfigurations timeZoneJobConfigurations = null, IDbConnectionFactory dbConnectionFactory = null, IOptions <JwtOptions> jwtOptions = null, SigningCredentials signingCredentials = null, JwtSecurityTokenHandler jwtSecurityTokenHandler = null) { return(new DopplerCurrencyService( httpClientFactory, dopplerCurrencySettings, loggerCurrencyService ?? Mock.Of <ILogger <DopplerCurrencyService> >(), timeZoneJobConfigurations ?? new TimeZoneJobConfigurations { TimeZoneJobs = TimeZoneHelper.GetTimeZoneByOperativeSystem("Argentina Standard Time") }, dbConnectionFactory, Mock.Of <IJwtTokenGenerator>())); }