예제 #1
0
        public ComicVineApiClientConfigurationTests()
        {
            var fixture = new Fixture();

            _validator = new ComicVineApiClientConfigurationValidator();

            _configuration = fixture.Create <ComicVineApiClientConfiguration>();
        }
예제 #2
0
        public static IServiceCollection AddComicVineProvider(this IServiceCollection services, IConfiguration configuration)
        {
            var comicVineSettings          = configuration.GetSection("ComicVineSettings").Get <ComicVineApiClientConfiguration>();
            var comicVineSettingsValidator = new ComicVineApiClientConfigurationValidator();

            comicVineSettingsValidator.ValidateAndThrow(comicVineSettings);

            services.AddSingleton <IComicVineApiClientConfiguration>(comicVineSettings);

            var restClientOptions = new RestClientOptions(comicVineSettings.BaseUrl);
            var restClient        = new RestClient(restClientOptions);

            services.AddScoped <IComicVineApiClient, ComicVineApiClient>(_ => new ComicVineApiClient(comicVineSettings, restClient));
            services.AddScoped <IComicVineProvider, ComicVineProvider>();

            return(services);
        }