Beispiel #1
0
        /// <summary>
        /// 点击菜单项:检查更新,如有更新,提示是否更新
        /// </summary>
        /// <param name="isStart">是否启动</param>
        public void update(bool isStart)
        {
            var info = dataModel.checkUpdate(isStart);

            if (info == null)
            {
                return;
            }

            if (isStart && !info.update)
            {
                return;
            }

            if (!info.data.Any())
            {
                if (isStart)
                {
                    return;
                }

                Messages.showMessage("您的系统是最新版本!");
                return;
            }

            var model = new UpdateModel("更新文件", info);

            model.callbackEvent += (sender, args) =>
            {
                switch (args.methodName)
                {
                case "updateFile":
                    var ver     = (FileVersion)args.param[0];
                    var file    = dataModel.getFile(ver.file);
                    var restart = dataModel.updateFile(ver, file);
                    model.updateFlag(restart);

                    break;

                case "complete" when(bool) args.param[0]:
                    Process.Start(model.createBat());
                    Application.Exit();

                    break;

                case "complete":
                    model.closeDialog();
                    break;
                }
            };
            model.showDialog();
        }