using System; using Consul; using Hangfire; using Hangfire.Redis; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; namespace MalwareMultiScan.Shared.Extensions { /// /// Extensions for IServiceCollection. /// public static class ServiceCollectionExtensions { /// /// Add consul to the service collection and register the node on start. /// /// Service collection. /// Configuration. public static void AddConsul(this IServiceCollection services, IConfiguration configuration) { services.AddSingleton(new ConsulClient(config => { config.Address = configuration.GetValue("CONSUL_ADDRESS"); })); } public static void AddHangfire(this IServiceCollection services, IConfiguration configuration, params string[] queues) { if (queues.Length == 0) queues = new[] {"default"}; services.AddHangfire(options => options.UseRedisStorage(configuration.GetValue("REDIS_ADDRESS"))); services.AddHangfireServer(options => options.Queues = queues); } } }