using Unity.Lifetime; using Unity; using ProjectHorseRacingOrg.Repositories; using ProjectHorseRacingOrg.Repositories.Implementations; using Unity.Microsoft.Logging; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Logging; using Serilog; namespace ProjectHorseRacingOrg { 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 TransientLifetimeManager()); container.RegisterType(new TransientLifetimeManager()); container.RegisterType(new TransientLifetimeManager()); container.RegisterType(new TransientLifetimeManager()); container.RegisterType(new TransientLifetimeManager()); container.RegisterType(); 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; } } }