示例#1
0
文件: UserModel.cs 项目: burstas/rmps
        public override void Load()
        {
            DataModel = new DataModel(this);

            const string file = "magickms.cfg";
            if (!File.Exists(file))
            {
                return;
            }

            Uc.Properties prop = new Uc.Properties();
            prop.Load(file);

            string solHash = prop.Get("sln.hash", "");
            if (CharUtil.IsValidateHash(solHash))
            {
                Solution = DataModel.ReadSolution(solHash);
            }
        }
示例#2
0
文件: AKms.cs 项目: burstas/rmps
 /// <summary>
 /// 添加方案
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void BtAppend_Click(object sender, EventArgs e)
 {
     _curSln = new MSolution { Language = "0", PreFunction = new List<MFunction>(), SufFunction = new List<MFunction>(), Category = new List<string>() };
     LsSolution.SelectedItem = null;
     TcSln.SelectedTab = TpSln;
     TbName.Focus();
     ShowData();
 }
示例#3
0
文件: AKms.cs 项目: burstas/rmps
        private void SaveData()
        {
            if (_curSln == null)
            {
                _curSln = new MSolution { PreFunction = new List<MFunction>(), SufFunction = new List<MFunction>(), Category = new List<string>() };
            }

            // 会话方案
            string name = (TbName.Text ?? "").Trim();
            if (!CharUtil.IsValidate(name))
            {
                MessageBox.Show(this, "请输入方案名称!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                TbName.Focus();
                return;
            }
            _curSln.Name = name;

            // 交互语言
            var lang = CbLanguage.SelectedItem as MLanguage;
            _curSln.Language = lang == null ? "0" : lang.C1010103;

            // 语言资源
            _curSln.Category.Clear();
            ListBox.SelectedObjectCollection cats = LsCategory.SelectedItems;
            foreach (Object obj in cats)
            {
                _curSln.Category.Add(((MCategory)obj).C2010203);
            }

            // 前置动作
            _curSln.PreFunction.Clear();
            ListBox.ObjectCollection preF = LsPre.Items;
            if (preF.Count > 0)
            {
                foreach (Object obj in preF)
                {
                    _curSln.PreFunction.Add(obj as MFunction);
                }
            }

            // 会话目标
            var target = CbTarget.SelectedItem as ListItem<ETarget>;
            if (target == null || target.K == ETarget.None)
            {
                MessageBox.Show(this, "请选择会话目标!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                CbLanguage.Focus();
                return;
            }
            _curSln.Target = target.K;

            // 会话模式
            var method = CbMethod.SelectedItem as ListItem<EMethod>;
            if (method == null || method.K == EMethod.None)
            {
                MessageBox.Show(this, "请选择会话模式!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                CbOutput.Focus();
                return;
            }
            _curSln.Method = method.K;

            // 输出方式
            if (target.K == ETarget.App)
            {
                var output = CbOutput.SelectedItem as ListItem<EOutput>;
                if (output == null || output.K == EOutput.None)
                {
                    MessageBox.Show(this, "请选择输出方式!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    LsCategory.Focus();
                    return;
                }
                _curSln.Output = output.K;
            }

            // 会话间隔
            decimal intval = SpIntval.Value;
            if (intval >= 0)
            {
                _curSln.Intval = decimal.ToInt32(intval);
            }

            // 准备输入
            _curSln.PostPrepare = PaInit.UserAction;

            // 输入确认
            _curSln.PostConfirm = PaPost.UserAction;

            // 后置动作
            _curSln.SufFunction.Clear();
            ListBox.ObjectCollection sufF = LsSuf.Items;
            if (sufF.Count > 0)
            {
                foreach (Object obj in sufF)
                {
                    _curSln.SufFunction.Add(obj as MFunction);
                }
            }

            // 快捷键
            _curSln.WorkKey = HkWork.HotKey;
            _curSln.HaltKey = HkHalt.HotKey;
            _curSln.NextKey = HkNext.HotKey;
            _curSln.StopKey = HkStop.HotKey;

            // 数据保存
            bool isUpdate = CharUtil.IsValidateHash(_curSln.Id);
            _DataModel.SaveSolution(_curSln);
            if (isUpdate)
            {
                LsSolution.DisplayMember = "";
                LsSolution.DisplayMember = _curSln.Name;
            }
            else
            {
                LsSolution.Items.Add(_curSln);
                LsSolution.SelectedItem = _curSln;
            }

            _reload = true;
        }
示例#4
0
文件: AKms.cs 项目: burstas/rmps
 /// <summary>
 /// 
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void LsSlns_SelectedIndexChanged(object sender, EventArgs e)
 {
     var sln = LsSolution.SelectedItem as MSolution;
     if (sln == null)
     {
         return;
     }
     _curSln = _DataModel.ReadSolution(sln);
     ShowData();
 }
示例#5
0
文件: AKms.cs 项目: burstas/rmps
 private void EditSln_Load(object sender, EventArgs e)
 {
     _curSln = _UserModel.Solution;
     LsSolution.SelectedItem = _curSln;
 }
示例#6
0
文件: UserModel.cs 项目: burstas/rmps
 /// <summary>
 /// 
 /// </summary>
 public void ReloadData(string hash)
 {
     Solution = DataModel.ReadSolution(hash);
 }
示例#7
0
文件: DataModel.cs 项目: burstas/rmps
        /// <summary>
        /// 
        /// </summary>
        /// <param name="sol"></param>
        public void DropSolution(MSolution sol)
        {
            _DBE.ReInit();

            // 语言选项
            _DBE.AddTable(DataConst.P3100700);
            _DBE.AddWhere(DataConst.P3100702, sol.Id);
            _DBE.ExecuteDelete();

            // 预定动作
            _DBE.ReInit();
            _DBE.AddTable(DataConst.P3100600);
            _DBE.AddWhere(DataConst.P3100601, sol.Id);
            _DBE.ExecuteDelete();

            // 方案信息
            _DBE.ReInit();
            _DBE.AddTable(DataConst.P3100500);
            _DBE.AddWhere(DataConst.P3100502, sol.Id);
            _DBE.ExecuteDelete();
        }
示例#8
0
文件: DataModel.cs 项目: burstas/rmps
 /// <summary>
 /// 
 /// </summary>
 /// <param name="row"></param>
 /// <returns></returns>
 private static MSolution ReadSolution(DataRow row)
 {
     var sol = new MSolution();
     sol.Order = (int)row[DataConst.P3100501];
     sol.Id = row[DataConst.P3100502] + "";
     sol.Name = row[DataConst.P3100503] + "";
     sol.Language = row[DataConst.P3100504] + "";
     sol.Target = (ETarget)Enum.Parse(typeof(ETarget), row[DataConst.P3100505] + "");
     sol.Method = (EMethod)Enum.Parse(typeof(EMethod), row[DataConst.P3100506] + "");
     sol.Output = (EOutput)Enum.Parse(typeof(EMethod), row[DataConst.P3100507] + "");
     sol.Intval = (int)row[DataConst.P3100508];
     sol.PostPrepare = row[DataConst.P3100509] + "";
     sol.PostConfirm = row[DataConst.P310050A] + "";
     sol.Remark = row[DataConst.P310050B] + "";
     sol.WorkKey = row[DataConst.P310050C] + "";
     sol.HaltKey = row[DataConst.P310050D] + "";
     sol.NextKey = row[DataConst.P310050E] + "";
     sol.StopKey = row[DataConst.P310050F] + "";
     return sol;
 }
示例#9
0
文件: DataModel.cs 项目: burstas/rmps
        /// <summary>
        /// 
        /// </summary>
        /// <param name="sol"></param>
        public void SaveSolution(MSolution sol)
        {
            _DBE.ReInit();
            _DBE.AddTable(DataConst.P3100500);
            _DBE.AddParam(DataConst.P3100501, sol.Order);
            _DBE.AddParam(DataConst.P3100503, sol.Name);
            _DBE.AddParam(DataConst.P3100504, sol.Language);
            _DBE.AddParam(DataConst.P3100505, (long)sol.Target);
            _DBE.AddParam(DataConst.P3100506, (long)sol.Method);
            _DBE.AddParam(DataConst.P3100507, (long)sol.Output);
            _DBE.AddParam(DataConst.P3100508, sol.Intval);
            _DBE.AddParam(DataConst.P3100509, sol.PostPrepare);
            _DBE.AddParam(DataConst.P310050A, sol.PostConfirm);
            _DBE.AddParam(DataConst.P310050B, sol.Remark);
            _DBE.AddParam(DataConst.P310050C, sol.WorkKey);
            _DBE.AddParam(DataConst.P310050D, sol.HaltKey);
            _DBE.AddParam(DataConst.P310050E, sol.NextKey);
            _DBE.AddParam(DataConst.P310050F, sol.StopKey);
            if (CharUtil.IsValidateHash(sol.Id))
            {
                _DBE.AddWhere(DataConst.P3100502, sol.Id);
                _DBE.AddUpdateBatch();
            }
            else
            {
                sol.Id = HashUtil.UtcTimeInEnc(false);
                _DBE.AddParam(DataConst.P3100502, sol.Id);
                _DBE.AddInsertBatch();
            }

            // 清空已有操作
            _DBE.ReInit();
            _DBE.AddTable(DataConst.P3100600);
            _DBE.AddWhere(DataConst.P3100602, sol.Id);
            _DBE.AddDeleteBatch();

            int order = 1;
            // 前置操作
            foreach (MFunction fun in sol.PreFunction)
            {
                _DBE.ReInit();
                fun.Order = order++;

                _DBE.AddTable(DataConst.P3100600);
                _DBE.AddParam(DataConst.P3100601, fun.Order);
                _DBE.AddParam(DataConst.P3100602, sol.Id);
                _DBE.AddParam(DataConst.P3100603, -1);
                _DBE.AddParam(DataConst.P3100604, (long)fun.Action);
                _DBE.AddParam(DataConst.P3100605, fun.Param);
                _DBE.AddInsertBatch();
            }

            order = 1;
            // 后置操作
            foreach (MFunction fun in sol.SufFunction)
            {
                _DBE.ReInit();
                fun.Order = order++;

                _DBE.AddTable(DataConst.P3100600);
                _DBE.AddParam(DataConst.P3100601, fun.Order);
                _DBE.AddParam(DataConst.P3100602, sol.Id);
                _DBE.AddParam(DataConst.P3100603, 1);
                _DBE.AddParam(DataConst.P3100604, (long)fun.Action);
                _DBE.AddParam(DataConst.P3100605, fun.Param);
                _DBE.AddInsertBatch();
            }

            // 清空已有
            _DBE.ReInit();
            _DBE.AddTable(DataConst.P3100700);
            _DBE.AddWhere(DataConst.P3100702, sol.Id);
            _DBE.AddDeleteBatch();

            order = 1;
            // 标签资源
            foreach (string cat in sol.Category)
            {
                _DBE.ReInit();
                _DBE.AddTable(DataConst.P3100700);
                _DBE.AddParam(DataConst.P3100701, order++);
                _DBE.AddParam(DataConst.P3100702, sol.Id);
                _DBE.AddParam(DataConst.P3100703, cat);
                _DBE.AddInsertBatch();
            }

            _DBE.ExecuteBatch();
        }
示例#10
0
文件: DataModel.cs 项目: burstas/rmps
        /// <summary>
        /// 
        /// </summary>
        /// <param name="sol"></param>
        /// <returns></returns>
        public MSolution ReadSolution(MSolution sol)
        {
            _DBE.ReInit();

            // 前置动作
            sol.PreFunction = ListFunction(sol.Id, -1);

            // 后置动作
            _DBE.ReInit();
            sol.SufFunction = ListFunction(sol.Id, 1);

            // 标签资源
            _DBE.ReInit();
            sol.Category = new List<string>();
            _DBE.AddTable(DataConst.P3100700);
            _DBE.AddWhere(DataConst.P3100702, sol.Id);
            DataTable dt = _DBE.ExecuteSelect();
            foreach (DataRow row in dt.Rows)
            {
                sol.Category.Add(row[DataConst.P3100703] + "");
            }
            dt.Dispose();

            return sol;
        }