using System.Threading.Tasks; using MalwareMultiScan.Backends.Extensions; using MalwareMultiScan.Backends.Services.Implementations; using MalwareMultiScan.Backends.Services.Interfaces; using MalwareMultiScan.Scanner.Services; using MalwareMultiScan.Shared.Extensions; using MalwareMultiScan.Shared.Services.Interfaces; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; namespace MalwareMultiScan.Scanner { internal static class Program { public static async Task Main(string[] args) { await Host.CreateDefaultBuilder(args) .ConfigureLogging((context, builder) => { builder.AddConsole(); builder.AddConfiguration(context.Configuration); }) .ConfigureAppConfiguration(builder => { builder.AddJsonFile("appsettings.json"); builder.AddEnvironmentVariables(); }) .ConfigureServices((context, services) => { services.AddConsul(context.Configuration); services.AddScanBackend(context.Configuration); services.AddHangfire(context.Configuration, context.Configuration.GetValue("BACKEND_ID")); services.AddSingleton(); services.AddSingleton(); services.AddHostedService(); }) .UseConsoleLifetime() .Build() .RunAsync(); } } }