private void Done(bool saveLog, BranchInfo.BranchType branchType) { if (ProcessFlowReturn.Equals("False")) Info.StatusCode = "RELEASE"; else { if (PageMode.Mode.CREATE.Equals(PM)) Info.StatusCode = "DRAFT"; } // Start User Define Parameter For SaveData Info.RuleName = txtRuleName.Text; Info.AlarmType = ddlAlarmType.SelectedValue; //Info.AlarmType = hidAlarmType.Value; //Info.AlarmTypeName = hidAlarmTypeName.Value; Info.Severity = ddlSeverity.SelectedValue; Info.CustomCode = ""; //txtCustomCode.Text; Info.Notifier = ""; foreach (ListItem itm in chklNotifier.Items) { if (itm.Selected) { if (Info.Notifier != "") Info.Notifier = Info.Notifier + ","; Info.Notifier = Info.Notifier + itm.Value; } } Info.State = ddlState.SelectedValue; Info.GenerateTask = rdlGenerateTask.SelectedValue; Info.Handler = rdlHandler.SelectedValue; Info.Rules = hidRules.Value; // End User Define Parameter For SaveData _ctrl.Save(Info, PM, saveLog, branchType); bool isTemperature = false; if(Info.AlarmType.CompareTo("611") == 0) isTemperature = true; //ApplyCar string[] ary = Newtonsoft.Json.JsonConvert.DeserializeObject<string[]>(hidApplyCarList.Value); ApplyCarController applyCarController = new ApplyCarController(); ApplyCarInfo applyCarInfo = null; applyCarController.DeleteByAlarmRuleSet(Info.AlarmRuleSetID); Dictionary<string, string> dic; if (isTemperature) { dic = new Dictionary<string, string>(); for (int i = 0; i < ary.Length; i++) { string[] splitArray = ary[i].Split(';'); string value; if (dic.TryGetValue(splitArray[0], out value)) //相同carInfoId的資料合併 { value = value + '|' + splitArray[1]; } else { value = splitArray[1]; } dic[splitArray[0]] = value; } foreach (KeyValuePair<string, string> kv in dic) { applyCarInfo = new ApplyCarInfo(); InitialObject(applyCarInfo, RequestModuleID); applyCarInfo.AlarmRuleSetID = Info.AlarmRuleSetID; applyCarInfo.fleetSetting_CARInfoID = kv.Key; applyCarInfo.PortNameInDB = kv.Value; applyCarController.Save(applyCarInfo, PageMode.Mode.CREATE, saveLog, branchType); } } else { for (int i = 0; i < ary.Length; i++) { applyCarInfo = new ApplyCarInfo(); InitialObject(applyCarInfo, RequestModuleID); applyCarInfo.AlarmRuleSetID = Info.AlarmRuleSetID; applyCarInfo.fleetSetting_CARInfoID = ary[i]; applyCarController.Save(applyCarInfo, PageMode.Mode.CREATE, saveLog, branchType); } } //ApplyContainer string[] ary2 = Newtonsoft.Json.JsonConvert.DeserializeObject<string[]>(hidApplyContainerList.Value); ApplyContainerController applyContainerController = new ApplyContainerController(); ApplyContainerInfo applyContainerInfo = null; applyContainerController.DeleteByAlarmRuleSet(Info.AlarmRuleSetID); if (isTemperature) { dic = new Dictionary<string, string>(); for (int i = 0; i < ary2.Length; i++) { string[] splitArray = ary2[i].Split(';'); string value; if (dic.TryGetValue(splitArray[0], out value)) //相同carInfoId的資料合併 { value = value + '|' + splitArray[1]; } else { value = splitArray[1]; } dic[splitArray[0]] = value; } foreach (KeyValuePair<string, string> kv in dic) { applyContainerInfo = new ApplyContainerInfo(); InitialObject(applyContainerInfo, RequestModuleID); applyContainerInfo.AlarmRuleSetID = Info.AlarmRuleSetID; applyContainerInfo.fleetSetting_ContainerID = kv.Key; applyContainerInfo.PortNameInDB = kv.Value; applyContainerController.Save(applyContainerInfo, PageMode.Mode.CREATE, saveLog, branchType); } } else { for (int i = 0; i < ary2.Length; i++) { applyContainerInfo = new ApplyContainerInfo(); InitialObject(applyContainerInfo, RequestModuleID); applyContainerInfo.AlarmRuleSetID = Info.AlarmRuleSetID; applyContainerInfo.fleetSetting_ContainerID = ary2[i]; applyContainerController.Save(applyContainerInfo, PageMode.Mode.CREATE, saveLog, branchType); } } Hashtable ht = new Hashtable(); ht.Add("ModID", this.ModuleId); ht.Add("DocID", Info.AlarmRuleSetID); ModuleCommunicationEventArgs mcArgs = new ModuleCommunicationEventArgs(); mcArgs.Sender = this.IMC_Sender; mcArgs.Target = IMC.SaveSupportComponentTarget; mcArgs.Type = "System.Collections.Hashtable"; mcArgs.Value = ht; mcArgs.Text = ""; ModuleCommunication(this, mcArgs); }
private void BindData() { //txtDocNO.Text = Info.AlarmRuleSetID; // Start User Define Parameter For BindData txtRuleName.Text = Info.RuleName; ddlAlarmType.SelectedIndex = ddlAlarmType.Items.IndexOf(ddlAlarmType.Items.FindByValue(Info.AlarmType)); //hidAlarmType.Value = Info.AlarmType; //hidAlarmTypeName.Value = Info.AlarmTypeName; ddlSeverity.SelectedValue = Info.Severity; //txtCustomCode.Text = Info.CustomCode; if (!string.IsNullOrEmpty(Info.Notifier)) { string[] aryNotifier = Info.Notifier.Split(','); foreach (ListItem itm in chklNotifier.Items) { for (int i = 0; i < aryNotifier.Length; i++) { if (itm.Value.Equals(aryNotifier[i])) itm.Selected = true; } } } ddlState.SelectedValue = Info.State; rdlGenerateTask.SelectedValue = Info.GenerateTask; rdlHandler.SelectedValue = Info.Handler; hidRules.Value = Info.Rules; bool isTemperature = false; if (null != Info.AlarmType && Info.AlarmType.CompareTo("611") == 0) isTemperature = true; //ApplyContainer ApplyContainerController applyContainerController = new ApplyContainerController(); List<ApplyContainerInfo> objCol2 = applyContainerController.FetchByAlarmRuleSet(Info.AlarmRuleSetID); ArrayList al2 = new ArrayList(objCol2.Count); foreach (ApplyContainerInfo item in objCol2) { if (isTemperature) { string[] splitArray = item.PortNameInDB.Split('|'); foreach(string portName in splitArray) { al2.Add(item.fleetSetting_ContainerID + ";" + portName); } } else { al2.Add(item.fleetSetting_ContainerID); } } hidApplyContainerList.Value = Newtonsoft.Json.JsonConvert.SerializeObject(al2); if (al2.Count > 0) { hidApplyContainer.Value = al2.Count.ToString(); } //ApplyCar ApplyCarController applyCarController = new ApplyCarController(); List<ApplyCarInfo> objCol = applyCarController.FetchByAlarmRuleSet(Info.AlarmRuleSetID); ArrayList al = new ArrayList(objCol.Count); foreach (ApplyCarInfo item in objCol) { if (isTemperature) { string[] splitArray = item.PortNameInDB.Split('|'); foreach (string portName in splitArray) { al.Add(item.fleetSetting_CARInfoID + ";" + portName); } } else { al.Add(item.fleetSetting_CARInfoID); } } hidApplyCarList.Value = Newtonsoft.Json.JsonConvert.SerializeObject(al); if (al.Count > 0 || al2.Count > 0) { hidApplyCar.Value = (al.Count + al2.Count).ToString();//貨櫃和車輛數要一起算 } // End User Define Parameter For BindData }