public GiantBombApiClientConfigurationTests() { var fixture = new Fixture(); _validator = new GiantBombApiClientConfigurationValidator(); _configuration = fixture.Create <GiantBombApiClientConfiguration>(); }
public static IServiceCollection AddGiantBombProvider(this IServiceCollection services, IConfiguration configuration) { var giantBombSettings = configuration.GetSection("GiantBombSettings").Get <GiantBombApiClientConfiguration>(); var giantBombSettingsValidator = new GiantBombApiClientConfigurationValidator(); giantBombSettingsValidator.ValidateAndThrow(giantBombSettings); services.AddSingleton <IGiantBombApiClientConfiguration>(giantBombSettings); var restClientOptions = new RestClientOptions(giantBombSettings.BaseUrl); var restClient = new RestClient(restClientOptions); restClient.UseNewtonsoftJson(); services.AddScoped <IGiantBombApiClient, GiantBombApiClient>(_ => new GiantBombApiClient(giantBombSettings, restClient)); services.AddScoped <IGiantBombProvider, GiantBombProvider>(); return(services); }