using System; using DDNSUpdater; using DDNSUpdater.Interfaces; using DDNSUpdater.Logging; using DDNSUpdater.Services; using Docker.DotNet; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using RestSharp; var builder = new ConfigurationBuilder() .AddJsonFile("appsettings.json", optional: false, reloadOnChange: false); DockerClient dockerClient = new DockerClientConfiguration() .CreateClient(); var configuration = builder.Build(); /*var logConfig = new OptionsMonitor(); logConfig.CurrentValue.LogLevelToColorMap[LogLevel.Warning] = ConsoleColor.DarkCyan; logConfig.CurrentValue.LogLevelToColorMap[LogLevel.Error] = ConsoleColor.DarkRed;*/ var serviceProvider = new ServiceCollection() .AddSingleton(configuration) .AddLogging(logging => logging.AddSpecterConsoleLogger(configuration => { // Replace warning value from appsettings.json of "Cyan" configuration.LogLevelToColorMap[LogLevel.Warning] = ConsoleColor.DarkCyan; // Replace warning value from appsettings.json of "Red" configuration.LogLevelToColorMap[LogLevel.Error] = ConsoleColor.DarkRed; })) .AddSingleton() .AddSingleton() .AddSingleton(dockerClient) .AddSingleton() .AddDbContext(options => options.UseInMemoryDatabase(databaseName: "DataContext")) .BuildServiceProvider(); var dockerService = serviceProvider.GetService(); dockerService?.UpdateDomainList(); var dataContext = serviceProvider.GetService(); var FoundDomains = dataContext.Domains.ToListAsync(); var dataAccess = serviceProvider.GetService(); dataAccess?.Init(); var timerService = serviceProvider.GetService(); timerService?.Start(); Console.ReadKey();