Ejemplo n.º 1
0
        public static void AddEasyComic(this IServiceCollection services, NetworkAdapterTypes networkAdapterType = NetworkAdapterTypes.HttpClient)
        {
            if (services is null)
            {
                throw new ArgumentNullException(nameof(services));
            }

            services.AddSingleton <ComicEngine>();
            services.AddSingleton(x =>
            {
                var factory = x.GetRequiredService <IServiceScopeFactory>();
                var eng     = new SearchEngine(factory);
                return(eng);
            });
            services.AddSingleton <IComicDownloader, ComicDownloader>();

            services.AddSingleton <RecyclableMemoryStreamManager>();
#if NET452 || NETSTANDARD1_4
            services.AddSingleton <HttpClient>();
            services.AddScoped <INetworkAdapter, HttpClientAdapter>();
#else
            services.AddHttpClient();
            services.AddScoped(x => x.GetRequiredService <IHttpClientFactory>().CreateClient());
            if (networkAdapterType == NetworkAdapterTypes.HttpClient)
            {
                services.AddScoped <INetworkAdapter, HttpClientAdapter>();
            }
            else
            {
                services.AddScoped <INetworkAdapter, WebRequestAdapter>();
            }
#endif
        }
Ejemplo n.º 2
0
        public static void AddDefaultEasyComic(this IServiceCollection services, NetworkAdapterTypes networkAdapterType = NetworkAdapterTypes.HttpClient)
        {
            if (services is null)
            {
                throw new ArgumentNullException(nameof(services));
            }

            services.AddEasyComic(networkAdapterType);
            services.AddStreamVisitor();
        }
Ejemplo n.º 3
0
        public void CallAddDefaultEasyComic(NetworkAdapterTypes type)
        {
            var services = new ServiceCollection();

            EasyComicBuilderExtensions.AddDefaultEasyComic(services, type);
            var se = services.BuildServiceProvider()
                     .GetRequiredService <SearchEngine>();

            Assert.IsNotNull(se);
        }
Ejemplo n.º 4
0
        public void CallAddEasyComic_ServiceCollectionMustContainesServices(NetworkAdapterTypes type)
        {
            var services = new ServiceCollection();

            EasyComicBuilderExtensions.AddEasyComic(services, type);
            Assert.IsTrue(services.Any(x => x.ServiceType == typeof(ComicEngine)));
            Assert.IsTrue(services.Any(x => x.ServiceType == typeof(SearchEngine)));
            Assert.IsTrue(services.Any(x => x.ServiceType == typeof(RecyclableMemoryStreamManager)));
            Assert.IsTrue(services.Any(x => x.ServiceType == typeof(INetworkAdapter)));
            Assert.IsTrue(services.Any(x => x.ServiceType == typeof(IComicDownloader)));
        }
Ejemplo n.º 5
0
 public static void AddServices(NetworkAdapterTypes type = NetworkAdapterTypes.HttpClient)
 {
     Services.AddEasyComic(type);
     Services.AddKnowEngines();
     Services.AddScoped <IJsEngine, JintJsEngine>();
 }