123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- namespace MinicsConsole;
- internal class Program
- {
- private readonly static ILog _expLog = new Logger.Logger();
- public static WebApplication? WebApplication { get; private set; }
- static void Main(string[] args)
- {
- Mutex mutex = new(true, "7E862400-8020-BE75-5266-B2C4BEB54076", out bool flag);
- if (!flag)
- return;
- _expLog.Initialize("Exceptions");
- AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
- TaskScheduler.UnobservedTaskException += TaskScheduler_UnobservedTaskException;
- if (!BaseConfigFileLoader.Load(out BasicInfo? basicInfo) || basicInfo is null)
- {
- MessageBox.Show("BaseInfo.xml Load Failed");
- return;
- }
- WebApplicationBuilder builder = WebApplication.CreateBuilder(args);
- builder.Services.AddSignalR(
- options =>
- {
- options.EnableDetailedErrors = true;
- options.MaximumReceiveMessageSize = 262144;//256k
- //options.ClientTimeoutInterval = TimeSpan.FromSeconds(5);
- //options.KeepAliveInterval = TimeSpan.FromSeconds(10);
- //options.MaximumParallelInvocationsPerClient = 5;
- });
- //Host Service
- builder.Services.AddHostedService<HostLifetime>();
- //Connections
- builder.Services.AddSingleton<Mini8DataDispatcher>();
- builder.Services.AddSingleton<PLCNotifier>();
- builder.Services.AddSingleton<RTNotifier>();
- builder.Services.AddSingleton<UISender>();
- builder.Services.AddSingleton<KanbanNotifier>();
- builder.Services.AddSingleton<ILog, LogSender>();
- builder.Services.AddSingleton<ITlvProvider, RTProvider_TLV>();
- //Configs
- builder.Services.AddSingleton<BasicInfo>(basicInfo);
- builder.Services.AddSingleton<Hardwares>();
- builder.Services.AddSingleton<ConfigFiles>();
- builder.Services.AddSingleton<HardWareMonitor>();
- builder.Services.AddSingleton<HardwareAddress>();
- builder.Services.AddSingleton<ConfigFileLoader>();
- builder.Services.AddSingleton<AddressFileLoader>();
- builder.Services.AddSingleton<HardwareFileLoader>();
- //Function Helpers
- builder.Services.AddSingleton<ConfigUpdater>();
- builder.Services.AddSingleton<DataBaseSwitch>();
- builder.Services.AddSingleton<DataBaseCleaner>();
- builder.Services.AddSingleton<DailyRoutinHelper>();
- //DataBase
- builder.Services.AddSingleton<OrmCollections>();
- //Businesses
- builder.Services.AddSingleton<UserOperator>();
- builder.Services.AddSingleton<DatabaseOperator>();
- builder.Services.AddSingleton<HardwareOperator>();
- builder.Services.AddSingleton<ConfigFileOperator>();
- WebApplication = builder.Build();
- WebApplication.MapHub<UIHub>("/UIHub");
- WebApplication.MapHub<LogHub>("/LogHub");
- WebApplication.RunAsync($"http://{basicInfo.ServerAddress}:{basicInfo.ServerPort}").Wait();
- }
- private static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
- {
- string s = e.ExceptionObject!.ToString()!;
- MessageBox.Show(s);
- _expLog.Fatal(s);
- }
- private static void TaskScheduler_UnobservedTaskException(object? sender, UnobservedTaskExceptionEventArgs e)
- {
- //_expLog.Fatal(e.Exception!.ToString()!);
- }
- }
|