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); } }
/// <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(); }
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; }
/// <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(); }
private void EditSln_Load(object sender, EventArgs e) { _curSln = _UserModel.Solution; LsSolution.SelectedItem = _curSln; }
/// <summary> /// /// </summary> public void ReloadData(string hash) { Solution = DataModel.ReadSolution(hash); }
/// <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(); }
/// <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; }
/// <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(); }
/// <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; }