using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; using View_by_Distance.Windows.Models; namespace View_by_Distance.Windows; public class Program { public static void Secondary(ILogger<Program> logger, List<string> args) { IConfigurationBuilder configurationBuilder = new ConfigurationBuilder() .AddEnvironmentVariables() .AddUserSecrets<Program>(); IConfigurationRoot configurationRoot = configurationBuilder.Build(); AppSettings appSettings = AppSettings.Get(configurationRoot); int silentIndex = args.IndexOf("s"); if (silentIndex > -1) args.RemoveAt(silentIndex); try { if (args is null) throw new Exception("args is null!"); Shared.Models.Console console = new(); _ = new Windows(args, logger, appSettings, silentIndex > -1, console); } catch (Exception ex) { logger?.LogError(ex, "Error!"); } if (silentIndex > -1) logger?.LogInformation("Done. Bye"); else { logger?.LogInformation("Done. Press 'Enter' to end"); _ = Console.ReadLine(); } } public static void Main(string[] args) { #pragma warning disable IL3050 ILogger<Program>? logger = Host.CreateDefaultBuilder(args).Build().Services.GetRequiredService<ILogger<Program>>(); #pragma warning restore IL3050 if (args is not null) Secondary(logger, args.ToList()); else Secondary(logger, []); } }