using System; using DotXxlJob.Core.Config; using DotXxlJob.Core.DefaultHandlers; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; namespace DotXxlJob.Core { public static class ServiceCollectionExtensions { public static IServiceCollection AddXxlJobExecutor(this IServiceCollection services,IConfiguration configuration) { services.AddLogging(); services.AddOptions(); services.Configure(configuration.GetSection("xxlJob")) .AddXxlJobExecutorServiceDependency(); return services; } public static IServiceCollection AddXxlJobExecutor(this IServiceCollection services,Action configAction) { services.AddLogging(); services.AddOptions(); services.Configure(configAction).AddXxlJobExecutorServiceDependency(); return services; } public static IServiceCollection AddDefaultXxlJobHandlers(this IServiceCollection services) { services.AddSingleton(); return services; } private static IServiceCollection AddXxlJobExecutorServiceDependency(this IServiceCollection services) { services.AddHttpClient("DotXxlJobClient"); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); return services; } } }