| 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;        }    }}
 |