Ejemplo n.º 1
0
        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);

        }
Ejemplo n.º 2
0
        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
        }