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 logger, List args) { IConfigurationBuilder configurationBuilder = new ConfigurationBuilder() .AddEnvironmentVariables() .AddUserSecrets(); 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? logger = Host.CreateDefaultBuilder(args).Build().Services.GetRequiredService>(); #pragma warning restore IL3050 if (args is not null) Secondary(logger, args.ToList()); else Secondary(logger, []); } }