Example #1
0
        public NetworkEnvironment GetCurrentEnvironment()
        {
            string strEnv = System.Web.Configuration.WebConfigurationManager.AppSettings["Evn"];//判断程序是否设置了环境标量

            if (!string.IsNullOrEmpty(strEnv))
            {
                try
                {
                    NetworkEnvironment env = (NetworkEnvironment)Enum.Parse(typeof(NetworkEnvironment), strEnv);
                    return(env);
                }
                catch
                {
                }
            }

            try
            {
                IPHostEntry iph = Dns.GetHostEntry(Dns.GetHostName());
                if (iph.AddressList != null)
                {
                    foreach (IPAddress address in iph.AddressList)
                    {
                        byte[] bytes = address.GetAddressBytes();
                        if (bytes[0] == 10 && bytes[1] == 22)//如果配置文件没有设置环境标量则根据IP段确认开发环境
                        {
                            return(NetworkEnvironment.Prod);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                LoggerWrapper.Logger.Error("ConfigUtility", ex);
            }

            return(NetworkEnvironment.Dev);
        }
        static void Init(IStartup startup)
        {
            //注册引导
            startup.InfoText = "正在初始化插件系统....";
            startup.DispatchUI(() =>
            {
                new ServiceManager().Load();
            });

            //初始化配置
            AppContext.ExtensionManager.ConfigurationProvider.Init(startup);

            //重置设置
            if (_cmd.Any(s => s == "/reset"))
            {
                AppContext.ExtensionManager.ConfigurationProvider.Reset();
            }

            Root.Init();

            if (ProgramConfiguration.Instance.CurrentVersion != Version)
            {
                startup.Update("正在升级...");
                //TODO: 版本升级初始化数据
                ProgramConfiguration.Instance.CurrentVersion = Version;
            }
            if (ProgramConfiguration.Instance.SubmitOrderBrowser != null && !ProgramConfiguration.Instance.SubmitOrderBrowser.IsAvailable)
            {
                ProgramConfiguration.Instance.SubmitOrderBrowser = null;
            }

            Statistics.Current.LastStartTime = DateTime.Now;
            Statistics.Current.StartupCount++;

            //初始化配置
            startup.Update("正在初始化配置信息....");
            NetworkEnvironment.Init(startup, () => startup.DispatchUI(new Action(RequireInitProxy)));

            //正在初始化相关信息
            new ResourceInitializer(startup).Run();

            //初始化服务
            startup.Update("正在初始化服务....");
            if (EnableAutoVcLoading)
            {
                VerifyCodeRecognizeServiceLoader.Init();
            }

            //更新HTTP配置
            var(success, message) = AppContext.ExtensionManager.GlobalKernel.Resolve <IWeb12306ConfProvider>().RefreshAsync().Result;
            if (!success)
            {
                throw new Exception("更新HTTP配置出错: " + message);
            }
            else
            {
                ParamData.Init();
            }

            //恢复会话
            startup.Update("正在恢复现场....");
            RunTime.SessionManager.TryRecoverSession(_ => startup.Update("正在尝试自动登录 " + _ + " ..."));

            //初始化资源
            startup.Update("初始化资源....");

            using (var g = startup.CreateGraphics())
            {
                DpiX = g.DpiX;
                DpiY = g.DpiY;
            }
        }