using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Logging; using ProjectGSM.Repositories; using ProjectGSM.Repositories.Implementations; using Serilog; using Unity; using Unity.Lifetime; using Unity.Microsoft.Logging; namespace ProjectGSM { internal static class Program { /// /// The main entry point for the application. /// [STAThread] static void Main() { // To customize application configuration such as set high DPI settings or default font, // see https://aka.ms/applicationconfiguration. ApplicationConfiguration.Initialize(); Application.Run((CreateContainer().Resolve())); } private static IUnityContainer CreateContainer() { var container = new UnityContainer(); container.AddExtension(new LoggingExtension(CreateLoggerFactory())); container.RegisterType(new SingletonLifetimeManager()); container.RegisterType(new TransientLifetimeManager()); container.RegisterType(new TransientLifetimeManager()); container.RegisterType(new TransientLifetimeManager()); container.RegisterType(new TransientLifetimeManager()); container.RegisterType(new TransientLifetimeManager()); container.RegisterType(new TransientLifetimeManager()); return container; } private static LoggerFactory CreateLoggerFactory() { var loggerFactory = new LoggerFactory(); loggerFactory.AddSerilog(new LoggerConfiguration() .ReadFrom.Configuration(new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json") .Build()) .CreateLogger()); return loggerFactory; } } }