コード例 #1
0
        internal Startup(string appCode)
        {
            try
            {
                CentralData.InitCommonSettings();
                //*ov-
                //EncryptionHelper.Key1 = GlobalConfiguration.GlobalKey2;
                //EncryptionHelper.Key2 = GlobalConfiguration.GlobalKey2;

                var executableDir = Path.GetDirectoryName(System.Windows.Forms.Application.ExecutablePath);
                _startUpDir = Directory.GetParent(executableDir).ToString();
                _startUpDir = Directory.GetParent(_startUpDir).ToString();
                _startUpDir = Directory.GetParent(_startUpDir).ToString();
                Directory.SetCurrentDirectory(_startUpDir);
                _cfgDir = _startUpDir + "\\Conf";
                var cfgFile = _cfgDir + "\\GlobalSetting";
                if (!ConfigFileHelper.IsFileExisting(cfgFile))
                {
                    throw new ArgumentException(" Must have a \"GlobalSetting\" config file in " + _cfgDir);
                }
                var cfgFileMgr    = new ConfigFileManager(cfgFile);
                var globalSetting = cfgFileMgr.ConvertToGeneric <GlobalSetting>();

                _appCfgDir = _cfgDir + "\\Apps\\" + appCode;
                cfgFile    = _appCfgDir + "\\ApplicationSetting";
                if (!ConfigFileHelper.IsFileExisting(cfgFile))
                {
                    throw new ArgumentException(" Must have a \"ApplicationSetting\" config file in " + _appCfgDir);
                }
                cfgFileMgr = new ConfigFileManager(cfgFile);
                ApplicationStartParamSet = cfgFileMgr.ConvertToGeneric <ApplicationSetting>();

                var appDataDir = "";
                if (ApplicationStartParamSet.ApplicationDataDir.IsNullOrEmpty())
                {
                    appDataDir = _startUpDir + "\\Data\\Apps\\" + appCode;
                }
                else
                {
                    appDataDir = FileHelper.GetFilePath(ApplicationStartParamSet.ApplicationDataDir, _startUpDir + "\\Data" + appCode);
                }
                ApplicationStartParamSet.ApplicationDataDir = appDataDir;

                var appLibDir = "";
                if (ApplicationStartParamSet.ApplicationLibDir.IsNullOrEmpty())
                {
                    appLibDir = _startUpDir + "\\Lib\\Apps\\" + appCode;
                }
                else
                {
                    appLibDir = FileHelper.GetFilePath(ApplicationStartParamSet.ApplicationLibDir, _startUpDir + "\\Lib" + appCode);
                }
                ApplicationStartParamSet.ApplicationLibDir = appLibDir;

                var appTempDir = "";
                if (ApplicationStartParamSet.ApplicationTempDir.IsNullOrEmpty())
                {
                    appTempDir = PathHelper.GetLastDriveName() + "\\tmp\\" + CentralData.ArchitectureCode + "\\" + appCode;
                }
                else
                {
                    appTempDir = FileHelper.GetFilePath(ApplicationStartParamSet.ApplicationTempDir, _startUpDir + "\\Data\\" + appCode + "\\Tmp");
                }
                ApplicationStartParamSet.ApplicationTempDir = appTempDir;



                var cblpDllPath = "";
                if (ApplicationStartParamSet.CblpDllPath.IsNullOrEmpty())
                {
                    cblpDllPath = _startUpDir + "\\Program\\Apps\\" + appCode + "\\Cblp." + appCode + ".dll";
                }
                else if (ApplicationStartParamSet.CblpDllPath.ToLower() == "none" | ApplicationStartParamSet.CblpDllPath.ToLower() == "no")
                {
                    cblpDllPath = "";
                }
                else
                {
                    cblpDllPath = FileHelper.GetFilePath(ApplicationStartParamSet.CblpDllPath, _startUpDir + "\\Program\\Apps\\" + appCode);
                }
                ApplicationStartParamSet.CblpDllPath = cblpDllPath;

                var cblpAdapterFullClassName = "";
                if (ApplicationStartParamSet.CblpAdapterClassFullName.IsNullOrEmpty())
                {
                    cblpAdapterFullClassName = "Ligg.EasyWinApp.Cblp." + appCode + "Adapter";
                }
                ApplicationStartParamSet.CblpAdapterClassFullName = cblpAdapterFullClassName;

                //# following exchange data with globalsetting
                var bootStrapperTasksDllPath = "";
                if (globalSetting.BootStrapperTasksDllPath.IsNullOrEmpty())
                {
                    bootStrapperTasksDllPath = _startUpDir + "\\Program\\BootStrapperTasks\\" + "BootStrapperTasks" + ".dll";
                }
                else
                {
                    bootStrapperTasksDllPath = FileHelper.GetFilePath(globalSetting.BootStrapperTasksDllPath, _startUpDir + "\\Program\\BootStrapperTasks");
                }
                ApplicationStartParamSet.BootStrapperTasksDllPath = bootStrapperTasksDllPath;
                if (globalSetting.BootStrapperTaskNameSpace.IsNullOrEmpty())
                {
                    ApplicationStartParamSet.BootStrapperTaskNameSpace = "Ligg.EasyWinApp.BootStrapperTasks";
                }

                if (!globalSetting.PhythonExePath.IsNullOrEmpty())
                {
                    var defLoc = Directory.GetParent(appLibDir).ToString();
                    defLoc = Directory.GetParent(defLoc).ToString();
                    var phythonExePath = FileHelper.GetFilePath(globalSetting.PhythonExePath, defLoc);
                    ApplicationStartParamSet.PhythonExecPath = phythonExePath;
                    SysProcessHelper.PythonExecPath          = phythonExePath;
                }


                if (ApplicationStartParamSet.DefaultCulture.IsNullOrEmpty())
                {
                    ApplicationStartParamSet.DefaultCulture = globalSetting.DefaultCulture;
                }
                if (ApplicationStartParamSet.HelpdeskEmail.IsNullOrEmpty())
                {
                    ApplicationStartParamSet.HelpdeskEmail = globalSetting.HelpdeskEmail;
                }
            }
            catch (Exception ex)
            {
                throw new ArgumentException("\n>> " + GetType().FullName + ".Startup Error: " + ex.Message);
            }
        }