123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- using DevExpress.CodeParser;
- using DevExpress.Utils.Localization;
- using DevExpress.Xpo;
- using DevExpress.XtraGrid.Localization;
- using DevExpress.XtraReports.Native.Templates;
- using DevExpress.XtraSplashScreen;
- using Ips.AdcAlgorithm;
- using Ips.Library;
- using Ips.Library.Basic;
- using Ips.Library.Basic.IO;
- using Ips.Library.DxpLib;
- using Ips.Library.Entity;
- using Ips.Library.LocLib;
- using Ips.LocAlgorithm;
- using Ips.Sps.Refs;
- using Ips.Sps.Scheduling.SigLocs;
- using Ips.Sps.Store;
- using System.Configuration;
- using System.Diagnostics;
- using System.IO;
- using System.Reflection;
- using System.Runtime.CompilerServices;
- using System.Runtime.Loader;
- using System.Text;
- namespace Ips.Sps.Host.Win
- {
- internal static class Program
- {
- [STAThread]
- static void Main()
- {
- AssemblyLoadContext.Default.Resolving += ResolveAssembly;
- AppHelper.OneStart(SpsConst.AppName, () =>
- {
- AppHelper.InitAppSettings();
- XpoInit();
- ConfigInit();
- Application.EnableVisualStyles();
- Application.SetCompatibleTextRenderingDefault(false);
- Application.SetHighDpiMode(HighDpiMode.SystemAware);
- SplashScreenManager.ShowForm(typeof(SpsSplashScreen));
- var mainWin = new MainWin() { Text = SpsConst.AppName };
- Application.Run(mainWin);
- });
- }
- static void XpoInit()
- {
- string connectionString = ConfigurationManager.ConnectionStrings["spsdb"]?.ConnectionString;
- if (connectionString.IsNullOrWhitespace())
- {
- //var dbPath = DriveUtil.GetMaxDrivePath("spsdata");
- //DirectoryUtil.CreateIfNotExists(dbPath);
- //var dbFile = Path.Combine(dbPath, "sps2.db");
- //var dbFile = Path.Combine(Application.StartupPath, "AppData", "sps2.db");
- var dbFile = Path.Combine(Application.StartupPath, "AppData", "spsdb", "sps.db");
- if (!File.Exists(dbFile))
- {
- string emptydb = Path.Combine(Application.StartupPath, "AppData", "spsdb", "sps_init.db");
- File.Copy(emptydb, dbFile);
- }
- connectionString = $"XpoProvider=SQLite;Data Source={dbFile}";
- }
- ConnectionHelper.Connect(connectionString);
- using (var uow = new UnitOfWork())
- InitDataHelper.Seed(uow);
- }
- static void ConfigInit()
- {
- AdcConst.MinWaitTime = ToolConfig.GetAppSetting("AdWaitTime").To(10);
- string baseHttpAddr = ToolConfig.GetAppSetting("AdBaseAddr");
- AdcConst.BaseHttpAddr = baseHttpAddr.AppendUrlSuffix("api/");
- RefManager.RefFindMin = ToolConfig.GetAppSetting("RefTimeOut").To(10);
- SpsConst.UseGpuDdc = ToolConfig.GetAppSetting("UseGpuDdc").To(false);
- SpsConst.EnableCatchFixError = ToolConfig.GetAppSetting("EnableCatchFixError").To(false);
- SpsConst.NoRefIsValidPos = ToolConfig.GetAppSetting("NoRefIsValidPos").To(true);
- SpsConst.DfoLocTurn = (long)(ToolConfig.GetAppSetting("DfoLocTurn").To(2225d) * 1e6);
- SpsConst.DefaultStdfErr = ToolConfig.GetAppSetting("DefaultStdfErr").To(0d);
- SpsConst.EnableLocGdopErr = ToolConfig.GetAppSetting("EnableLocGdopErr").To(false);
- SpsConst.EnableDtfLoc32 = ToolConfig.GetAppSetting("EnableDtfLoc32").To(false);
- SpsConst.EnablEphTle = ToolConfig.GetAppSetting("EnablEphTle").To(false);
- ChsLocalizer.UseChs();
- }
- private static Assembly ResolveAssembly(AssemblyLoadContext alc, AssemblyName assemblyName)
- {
- string pathMaybe = Path.Combine(AppContext.BaseDirectory, "AddIns", $"{assemblyName.Name}.dll");
- if (File.Exists(pathMaybe))
- return alc.LoadFromAssemblyPath(pathMaybe);
- return null;
- }
- }
- }
|