| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456 | using Aitex.Core.RT.Log;using Aitex.Core.RT.ParameterCenter;using Caliburn.Micro.Core;using MECF.Framework.Common.ParameterCenter;using MECF.Framework.UI.Client.CenterViews.Editors.Recipe;using RecipeEditorLib.RecipeModel.Params;using System;using System.Collections.Generic;using System.Collections.ObjectModel;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows;using System.Xml;namespace MECF.Framework.UI.Client.CenterViews.Parameter{    public class AlarmConditionParameterData : ParameterDataBase    {        private ParameterProvider _parameterProvider = new ParameterProvider();        private ParameterFormatBuilder _columnBuilder = new ParameterFormatBuilder();        private Dictionary<string, ObservableCollection<ParameterTemplateColumnBase>> ParameterTemplate;        public AlarmConditionParameterData() : base()        {            string vars = _parameterProvider.GetParameterFormatXml($"Parameter\\AlarmCondition");            _columnBuilder.Build($"Parameter\\AlarmCondition");            ParameterTemplate = _parameterProvider.GetGroupParameterTemplate();            TableNumber = _columnBuilder.TableNumber;            Version = _columnBuilder.Version;            for (int i = 1; i < TableNumber + 1; i++)            {                Steps.Add(CreateStep());            }        }        public override ParameterTable CreateStep(XmlNode stepNode = null)        {            ParameterTable step = new AlarmConditionTable();            if (stepNode != null)            {                if (stepNode.Attributes["StepNo"] != null)                    step.StepNo = int.Parse(stepNode.Attributes["StepNo"].Value);                if (stepNode.Attributes["Name"] != null)                    step.Name = stepNode.Attributes["Name"].Value;                //if (stepNode.Attributes["UseTemp"] != null)                //    step.UseTemp = stepNode.Attributes["UseTemp"].Value;            }            else            {                step.StepNo = StepNo;                step.Name = "Name" + StepNo.ToString();                // step.UseTemp = "0";                StepNo++;            }            int pIDIndex = 1;            InitializationData(step);            if (stepNode != null)            {                if (stepNode.Attributes["TempHeater"] != null)                {                    ((AlarmConditionTable)step).SetHeaterTempData(stepNode.Attributes["TempHeater"].Value);                }                if (stepNode.Attributes["TempBoat"] != null)                {                    ((AlarmConditionTable)step).SetBoatTempData(stepNode.Attributes["TempBoat"].Value);                }                if (stepNode.Attributes["FlowDeviation"] != null)                {                    ((AlarmConditionTable)step).SetMFCFlowDeviationData(stepNode.Attributes["FlowDeviation"].Value);                }                if (stepNode.Attributes["Press"] != null)                {                    ((AlarmConditionTable)step).SetPressData(stepNode.Attributes["Press"].Value);                }                if (stepNode.Attributes["AUX"] != null)                {                    ((AlarmConditionTable)step).SetAUXData(stepNode.Attributes["AUX"].Value);                }                if (stepNode.Attributes["HWILK"] != null)                {                    ((AlarmConditionTable)step).SetHWILKData(stepNode.Attributes["HWILK"].Value);                }                if (stepNode.Attributes["ValveILK"] != null)                {                    ((AlarmConditionTable)step).SetValveIlkData(stepNode.Attributes["ValveILK"].Value);                }                if (stepNode.Attributes["TempController"] != null)                {                    ((AlarmConditionTable)step).SetTempControlerData(stepNode.Attributes["TempController"].Value);                }                if (stepNode.Attributes["APCController"] != null)                {                    ((AlarmConditionTable)step).SetAPCControlerData(stepNode.Attributes["APCController"].Value);                }                if (stepNode.Attributes["CLNAlarmList"] != null)                {                    ((AlarmConditionTable)step).SetCLNAlarmListData(stepNode.Attributes["CLNAlarmList"].Value);                }                if (stepNode.Attributes["TransferError"] != null)                {                    ((AlarmConditionTable)step).SetTransferErrorData(stepNode.Attributes["TransferError"].Value);                }                if (stepNode.Attributes["SerialLineDown"] != null)                {                    ((AlarmConditionTable)step).SetSerialLineDownData(stepNode.Attributes["SerialLineDown"].Value);                }                if (stepNode.Attributes["LanLineDown"] != null)                {                    ((AlarmConditionTable)step).SetLanLineDownData(stepNode.Attributes["LanLineDown"].Value);                }                //if (stepNode.Attributes["DeviceNetLineDown"] != null)                //{                //    ((AlarmConditionTable)step).SetDeviceNetLineDownData(stepNode.Attributes["DeviceNetLineDown"].Value);                //}                if (stepNode.Attributes["Sensor"] != null)                {                    ((AlarmConditionTable)step).SetSensorData(stepNode.Attributes["Sensor"].Value);                }                if (stepNode.Attributes["Other"] != null)                {                    ((AlarmConditionTable)step).SetOtherData(stepNode.Attributes["Other"].Value);                }            }            return step;        }        private void InitializationData(ParameterTable step)        {            foreach (var item in ParameterTemplate)            {                var keyName = item.Key.Split('\t')[0];                switch (keyName)                {                    case "TempHeater":                        string[] heaterList = item.Key.Split('\t');                        AlarmConditionHeaterTemp alarmConditionHeaterTemp = new AlarmConditionHeaterTemp();                        if (heaterList.Length == 3)                            alarmConditionHeaterTemp.ZoneName = heaterList[2];                        ParameterTemplateColumnBase alarmCom = null;                        ParameterTemplateColumnBase alarmDevHighCom = null;                        ParameterTemplateColumnBase alarmDevLowCom = null;                        ParameterTemplateColumnBase alarmUnitCom = null;                        ParameterTemplateColumnBase alarmDelayTimeCom = null;                        ParameterTemplateColumnBase alarmTimeCom = null;                        ParameterTemplateColumnBase alarmErrorCom = null;                        ParameterTemplateColumnBase errorCom = null;                        ParameterTemplateColumnBase errorDevHighCom = null;                        ParameterTemplateColumnBase errorDevLowCom = null;                        ParameterTemplateColumnBase errorUnitCom = null;                        ParameterTemplateColumnBase errorDelayTimeCom = null;                        ParameterTemplateColumnBase errorTimeCom = null;                        ParameterTemplateColumnBase errorErrorCom = null;                        foreach (var subitem in item.Value)                        {                            switch (subitem.ControlName)                            {                                case "AlarmCheck":                                    alarmCom = subitem;                                    break;                                case "AlarmDevHigh":                                    alarmDevHighCom = subitem;                                    break;                                case "AlarmDevLow":                                    alarmDevLowCom = subitem;                                    break;                                case "AlarmUnit":                                    alarmUnitCom = subitem;                                    break;                                case "AlarmTime":                                    alarmTimeCom = subitem;                                    break;                                case "AlarmDelayTime":                                    alarmDelayTimeCom = subitem;                                    break;                                case "AlarmErrorCommand":                                    alarmErrorCom = subitem;                                    break;                                case "ErrorCheck":                                    errorCom = subitem;                                    break;                                case "ErrorDevHigh":                                    errorDevHighCom = subitem;                                    break;                                case "ErrorDevLow":                                    errorDevLowCom = subitem;                                    break;                                case "ErrorUnit":                                    errorUnitCom = subitem;                                    break;                                case "ErrorDelayTime":                                    errorDelayTimeCom = subitem;                                    break;                                case "ErrorTime":                                    errorTimeCom = subitem;                                    break;                                case "ErrorErrorCommand":                                    errorErrorCom = subitem;                                    break;                                default:                                    break;                            }                        }                        bool alarmIsCheck = false;                        if (alarmCom != null)                        {                            alarmIsCheck = alarmCom.Default == "ON" ? true : false;                        }                        DoubleParam alarmDevParam = null;                        if (alarmDevHighCom != null)                        {                            alarmDevParam = new DoubleParam()                            {                                Name = alarmDevHighCom.DisplayName,                                Minimun = alarmDevHighCom.Minimun,                                Maximun = alarmDevHighCom.Maximun,                                Value = alarmDevHighCom.Value.ToString()                            };                        }                        DoubleParam alarmDevLowParam = null;                        if (alarmDevLowCom != null)                        {                            alarmDevLowParam = new DoubleParam()                            {                                Name = alarmDevLowCom.DisplayName,                                Minimun = alarmDevLowCom.Minimun,                                Maximun = alarmDevLowCom.Maximun,                                Value = alarmDevLowCom.Value.ToString()                            };                        }                        string alarmUnit = "℃";                        if (alarmUnitCom != null)                        {                            alarmUnit = alarmUnitCom.Default;                        }                        DoubleParam alarmDelayTimeParam = null;                        if (alarmDelayTimeCom != null)                        {                            alarmDelayTimeParam = new DoubleParam()                            {                                Name = alarmDelayTimeCom.DisplayName,                                Minimun = alarmDelayTimeCom.Minimun,                                Maximun = alarmDelayTimeCom.Maximun,                                Value = alarmDelayTimeCom.Value.ToString()                            };                        }                        DoubleParam alarmTimeParam = null;                        if (alarmTimeCom != null)                        {                            alarmTimeParam = new DoubleParam()                            {                                Name = alarmTimeCom.DisplayName,                                Minimun = alarmTimeCom.Minimun,                                Maximun = alarmTimeCom.Maximun,                                Value = alarmTimeCom.Value.ToString()                            };                        }                        string alarmError = "";                        if (alarmErrorCom != null)                        {                            alarmError = alarmErrorCom.Default;                        }                        alarmConditionHeaterTemp.AlertTempData = new TempData()                        {                            Type = CheckType.Alert,                            IsCheck = alarmIsCheck,                            DevHigh = alarmDevParam != null ? alarmDevParam : new DoubleParam() { Name = "DevHigh", Minimun = 0, Maximun = 700, Value = "0" },                            DevLow = alarmDevLowParam != null ? alarmDevLowParam : new DoubleParam() { Name = "DevLow", Minimun = 0, Maximun = 700, Value = "0" },                            Unit = alarmUnit,                            DelayTime = alarmDelayTimeParam != null ? alarmDelayTimeParam : new DoubleParam() { Name = "DelayTime", Minimun = 0, Maximun = 99999, Value = "0" },                            Time = alarmTimeParam != null ? alarmTimeParam : new DoubleParam() { Name = alarmTimeParam.DisplayName, Minimun = 0, Maximun = 99999, Value = "0" },                            ErrorCommand = alarmError                        };                        bool errorIsCheck = false;                        if (errorCom != null)                        {                            errorIsCheck = errorCom.Default == "ON" ? true : false;                        }                        DoubleParam errorDevParam = null;                        if (errorDevHighCom != null)                        {                            errorDevParam = new DoubleParam()                            {                                Name = errorDevHighCom.DisplayName,                                Minimun = errorDevHighCom.Minimun,                                Maximun = errorDevHighCom.Maximun,                                Value = errorDevHighCom.Value.ToString()                            };                        }                        DoubleParam errorDevLowParam = null;                        if (errorDevLowCom != null)                        {                            errorDevLowParam = new DoubleParam()                            {                                Name = errorDevLowCom.DisplayName,                                Minimun = errorDevLowCom.Minimun,                                Maximun = errorDevLowCom.Maximun,                                Value = errorDevLowCom.Value.ToString()                            };                        }                        string errorUnit = "℃";                        if (errorUnitCom != null)                        {                            errorUnit = errorUnitCom.Default;                        }                        DoubleParam errorDelayTimeParam = null;                        if (errorDelayTimeCom != null)                        {                            errorDelayTimeParam = new DoubleParam()                            {                                Name = errorDelayTimeCom.DisplayName,                                Minimun = errorDelayTimeCom.Minimun,                                Maximun = errorDelayTimeCom.Maximun,                                Value = errorDelayTimeCom.Value.ToString()                            };                        }                        DoubleParam errorTimeParam = null;                        if (errorTimeCom != null)                        {                            errorTimeParam = new DoubleParam()                            {                                Name = errorTimeCom.DisplayName,                                Minimun = errorTimeCom.Minimun,                                Maximun = errorTimeCom.Maximun,                                Value = errorTimeCom.Value.ToString()                            };                        }                        string errorError = "Buzzer";                        if (errorErrorCom != null)                        {                            errorError = errorErrorCom.Default;                        }                        alarmConditionHeaterTemp.AlarmTempData = new TempData()                        {                            Type = CheckType.Alarm,                            IsCheck = errorIsCheck,                            DevHigh = errorDevParam != null ? errorDevParam : new DoubleParam() { Name = "DevHigh", Minimun = 0, Maximun = 99999, Value = "0" },                            DevLow = errorDevLowParam != null ? errorDevLowParam : new DoubleParam() { Name = "DevLow", Minimun = 0, Maximun = 99999, Value = "0" },                            Unit = errorUnit,                            DelayTime = errorDelayTimeParam != null ? errorDelayTimeParam : new DoubleParam() { Name = "DelayTime", Minimun = 0, Maximun = 99999, Value = "0" },                            Time = errorTimeParam != null ? errorTimeParam : new DoubleParam() { Name = "Time", Minimun = 0, Maximun = 99999, Value = "0" },                            ErrorCommand = errorError                        };                        ((AlarmConditionTable)step).HeaterTempList.Add(alarmConditionHeaterTemp);                        break;                    case "TempBoat":                        string[] boatList = item.Key.Split('\t');                        AlarmConditionBoatTemp alarmConditionBoatTemp = new AlarmConditionBoatTemp();                        if (boatList.Length == 3)                        {                            alarmConditionBoatTemp.BoatMotion = boatList[2];                        }                        var highLimitCom = item.Value.Where(x => x.ControlName == "HighLimit").FirstOrDefault();                        DoubleParam highLimitParam = null;                        if (highLimitCom != null)                        {                            highLimitParam = new DoubleParam()                            {                                Name = highLimitCom.DisplayName,                                Minimun = highLimitCom.Minimun,                                Maximun = highLimitCom.Maximun,                                Value = highLimitCom.Value.ToString()                            };                        }                        alarmConditionBoatTemp.HighLimit = highLimitParam != null ? highLimitParam : new DoubleParam() { Name = "DevHigh", Minimun = 0, Maximun = 700, Value = "0" };                        var unitCom = item.Value.Where(x => x.ControlName == "Unit").FirstOrDefault();                        string unitStr = "℃";                        if (unitCom != null)                        {                            unitStr = unitCom.Default;                        }                        alarmConditionBoatTemp.Unit = unitStr;                        ((AlarmConditionTable)step).BoatTempList.Add(alarmConditionBoatTemp);                        break;                    case "FlowDeviation":                        string[] flowDeviationList = item.Key.Split('\t');                        AlarmConditionMFCFlowDeviation alarmConditionMFCFlowDeviation = new AlarmConditionMFCFlowDeviation();                        if (flowDeviationList.Length == 3)                        {                            alarmConditionMFCFlowDeviation.Index = Convert.ToInt32(flowDeviationList[1]);                            alarmConditionMFCFlowDeviation.MFCName = flowDeviationList[2];                        }                        alarmCom = null;                        alarmDevHighCom = null;                        alarmDevLowCom = null;                        alarmUnitCom = null;                        alarmDelayTimeCom = null;                        alarmTimeCom = null;                        alarmErrorCom = null;                        errorCom = null;                        errorDevHighCom = null;                        errorDevLowCom = null;                        errorUnitCom = null;                        errorDelayTimeCom = null;                        errorTimeCom = null;                        errorErrorCom = null;                        foreach (var subitem in item.Value)                        {                            switch (subitem.ControlName)                            {                                case "AlarmCheck":                                    alarmCom = subitem;                                    break;                                case "AlarmDevHigh":                                    alarmDevHighCom = subitem;                                    break;                                case "AlarmDevLow":                                    alarmDevLowCom = subitem;                                    break;                                case "AlarmUnit":                                    alarmUnitCom = subitem;                                    break;                                case "AlarmDelayTime":                                    alarmDelayTimeCom = subitem;                                    break;                                case "AlarmTime":                                    alarmTimeCom = subitem;                                    break;                                case "AlarmErrorCommand":                                    alarmErrorCom = subitem;                                    break;                                case "ErrorCheck":                                    errorCom = subitem;                                    break;                                case "ErrorDevHigh":                                    errorDevHighCom = subitem;                                    break;                                case "ErrorDevLow":                                    errorDevLowCom = subitem;                                    break;                                case "ErrorUnit":                                    errorUnitCom = subitem;                                    break;                                case "ErrorDelayTime":                                    errorDelayTimeCom = subitem;                                    break;                                case "ErrorTime":                                    errorTimeCom = subitem;                                    break;                                case "ErrorErrorCommand":                                    errorErrorCom = subitem;                                    break;                                default:                                    break;                            }                        }                        alarmIsCheck = false;                        if (alarmCom != null)                        {                            alarmIsCheck = alarmCom.Default == "ON" ? true : false;                        }                        alarmDevParam = null;                        if (alarmDevHighCom != null)                        {                            alarmDevParam = new DoubleParam()                            {                                Name = alarmDevHighCom.DisplayName,                                Minimun = alarmDevHighCom.Minimun,                                Maximun = alarmDevHighCom.Maximun,                                Value = alarmDevHighCom.Value.ToString()                            };                        }                        alarmDevLowParam = null;                        if (alarmDevLowCom != null)                        {                            alarmDevLowParam = new DoubleParam()                            {                                Name = alarmDevLowCom.DisplayName,                                Minimun = alarmDevLowCom.Minimun,                                Maximun = alarmDevLowCom.Maximun,                                Value = alarmDevLowCom.Value.ToString()                            };                        }                        alarmUnit = "%fs";                        if (alarmUnitCom != null)                        {                            alarmUnit = alarmUnitCom.Default;                        }                        alarmDelayTimeParam = null;                        if (alarmDelayTimeCom != null)                        {                            alarmDelayTimeParam = new DoubleParam()                            {                                Name = alarmDelayTimeCom.DisplayName,                                Minimun = alarmDelayTimeCom.Minimun,                                Maximun = alarmDelayTimeCom.Maximun,                                Value = alarmDelayTimeCom.Value.ToString()                            };                        }                        alarmTimeParam = null;                        if (alarmTimeCom != null)                        {                            alarmTimeParam = new DoubleParam()                            {                                Name = alarmTimeCom.DisplayName,                                Minimun = alarmTimeCom.Minimun,                                Maximun = alarmTimeCom.Maximun,                                Value = alarmTimeCom.Value.ToString()                            };                        }                        alarmError = "";                        if (alarmErrorCom != null)                        {                            alarmError = alarmErrorCom.Default;                        }                        alarmConditionMFCFlowDeviation.AlertTempData = new TempData()                        {                            Type = CheckType.Alert,                            IsCheck = alarmIsCheck,                            DevHigh = alarmDevParam != null ? alarmDevParam : new DoubleParam() { Name = "DevHigh", Minimun = 0, Maximun = 700, Value = "99" },                            DevLow = alarmDevLowParam != null ? alarmDevLowParam : new DoubleParam() { Name = "DevLow", Minimun = 0, Maximun = 700, Value = "11" },                            Unit = alarmUnit,                            Time = alarmTimeParam != null ? alarmTimeParam : new DoubleParam() { Name = "Time", Minimun = 0, Maximun = 99999, Value = "0" },                            DelayTime = alarmDelayTimeParam != null ? alarmDelayTimeParam : new DoubleParam() { Name = "DelayTime", Minimun = 0, Maximun = 99999, Value = "0" },                            ErrorCommand = alarmError                        };                        errorIsCheck = false;                        if (errorCom != null)                        {                            errorIsCheck = errorCom.Default == "ON" ? true : false;                        }                        errorDevParam = null;                        if (errorDevHighCom != null)                        {                            errorDevParam = new DoubleParam()                            {                                Name = errorDevHighCom.DisplayName,                                Minimun = errorDevHighCom.Minimun,                                Maximun = errorDevHighCom.Maximun,                                Value = errorDevHighCom.Value.ToString()                            };                        }                        errorDevLowParam = null;                        if (errorDevLowCom != null)                        {                            errorDevLowParam = new DoubleParam()                            {                                Name = errorDevLowCom.DisplayName,                                Minimun = errorDevLowCom.Minimun,                                Maximun = errorDevLowCom.Maximun,                                Value = errorDevLowCom.Value.ToString()                            };                        }                        errorUnit = "%fs";                        if (errorUnitCom != null)                        {                            errorUnit = errorUnitCom.Default;                        }                        errorDelayTimeParam = null;                        if (errorDelayTimeCom != null)                        {                            errorDelayTimeParam = new DoubleParam()                            {                                Name = errorDelayTimeCom.DisplayName,                                Minimun = errorDelayTimeCom.Minimun,                                Maximun = errorDelayTimeCom.Maximun,                                Value = errorDelayTimeCom.Value.ToString()                            };                        }                        errorTimeParam = null;                        if (errorTimeCom != null)                        {                            errorTimeParam = new DoubleParam()                            {                                Name = errorTimeCom.DisplayName,                                Minimun = errorTimeCom.Minimun,                                Maximun = errorTimeCom.Maximun,                                Value = errorTimeCom.Value.ToString()                            };                        }                        errorError = "Buzzer";                        if (errorErrorCom != null)                        {                            errorError = errorErrorCom.Default;                        }                        alarmConditionMFCFlowDeviation.AlarmTempData = new TempData()                        {                            Type = CheckType.Alarm,                            IsCheck = errorIsCheck,                            DevHigh = errorDevParam != null ? errorDevParam : new DoubleParam() { Name = "DevHigh", Minimun = 0, Maximun = 700, Value = "33" },                            DevLow = errorDevLowParam != null ? errorDevLowParam : new DoubleParam() { Name = "DevLow", Minimun = 0, Maximun = 700, Value = "22" },                            Unit = errorUnit,                            Time = errorTimeParam != null ? errorTimeParam : new DoubleParam() { Name = "Time", Minimun = 0, Maximun = 99999, Value = "0" },                            DelayTime = errorDelayTimeParam != null ? errorDelayTimeParam : new DoubleParam() { Name = "DelayTime", Minimun = 0, Maximun = 99999, Value = "0" },                            ErrorCommand = errorError                        };                        ((AlarmConditionTable)step).MFCFlowDeviationList.Add(alarmConditionMFCFlowDeviation);                        break;                    case "Press":                        string[] pressList = item.Key.Split('\t');                        AlarmConditionPress alarmConditionPress = new AlarmConditionPress();                        if (pressList.Length == 3)                        {                            alarmConditionPress.Index = Convert.ToInt32(pressList[1]);                            alarmConditionPress.PressKindName = pressList[2];                        }                        alarmCom = null;                        alarmDevHighCom = null;                        alarmDevLowCom = null;                        alarmUnitCom = null;                        alarmDelayTimeCom = null;                        alarmTimeCom = null;                        alarmErrorCom = null;                        errorCom = null;                        errorDevHighCom = null;                        errorDevLowCom = null;                        errorUnitCom = null;                        errorDelayTimeCom = null;                        errorTimeCom = null;                        errorErrorCom = null;                        foreach (var subitem in item.Value)                        {                            switch (subitem.ControlName)                            {                                case "AlarmCheck":                                    alarmCom = subitem;                                    break;                                case "AlarmDevHigh":                                    alarmDevHighCom = subitem;                                    break;                                case "AlarmDevLow":                                    alarmDevLowCom = subitem;                                    break;                                case "AlarmUnit":                                    alarmUnitCom = subitem;                                    break;                                case "AlarmDelayTime":                                    alarmDelayTimeCom = subitem;                                    break;                                case "AlarmTime":                                    alarmTimeCom = subitem;                                    break;                                case "AlarmErrorCommand":                                    alarmErrorCom = subitem;                                    break;                                case "ErrorCheck":                                    errorCom = subitem;                                    break;                                case "ErrorDevHigh":                                    errorDevHighCom = subitem;                                    break;                                case "ErrorDevLow":                                    errorDevLowCom = subitem;                                    break;                                case "ErrorUnit":                                    errorUnitCom = subitem;                                    break;                                case "ErrorDelayTime":                                    errorDelayTimeCom = subitem;                                    break;                                case "ErrorTime":                                    errorTimeCom = subitem;                                    break;                                case "ErrorErrorCommand":                                    errorErrorCom = subitem;                                    break;                                default:                                    break;                            }                        }                        alarmIsCheck = false;                        if (alarmCom != null)                        {                            alarmIsCheck = alarmCom.Default == "ON" ? true : false;                        }                        alarmDevParam = null;                        if (alarmDevHighCom != null)                        {                            alarmDevParam = new DoubleParam()                            {                                Name = alarmDevHighCom.DisplayName,                                Minimun = alarmDevHighCom.Minimun,                                Maximun = alarmDevHighCom.Maximun,                                Value = alarmDevHighCom.Value.ToString()                            };                        }                        alarmDevLowParam = null;                        if (alarmDevLowCom != null)                        {                            alarmDevLowParam = new DoubleParam()                            {                                Name = alarmDevLowCom.DisplayName,                                Minimun = alarmDevLowCom.Minimun,                                Maximun = alarmDevLowCom.Maximun,                                Value = alarmDevLowCom.Value.ToString()                            };                        }                        alarmUnit = "%fs";                        if (alarmUnitCom != null)                        {                            alarmUnit = alarmUnitCom.Default;                        }                        alarmDelayTimeParam = null;                        if (alarmDelayTimeCom != null)                        {                            alarmDelayTimeParam = new DoubleParam()                            {                                Name = alarmDelayTimeCom.DisplayName,                                Minimun = alarmDelayTimeCom.Minimun,                                Maximun = alarmDelayTimeCom.Maximun,                                Value = alarmDelayTimeCom.Value.ToString()                            };                        }                        alarmTimeParam = null;                        if (alarmTimeCom != null)                        {                            alarmTimeParam = new DoubleParam()                            {                                Name = alarmTimeCom.DisplayName,                                Minimun = alarmTimeCom.Minimun,                                Maximun = alarmTimeCom.Maximun,                                Value = alarmTimeCom.Value.ToString()                            };                        }                        alarmError = "Monitor";                        if (alarmErrorCom != null)                        {                            alarmError = alarmErrorCom.Default;                        }                        alarmConditionPress.AlertTempData = new TempData()                        {                            Type = CheckType.Alert,                            IsCheck = alarmIsCheck,                            DevHigh = alarmDevParam != null ? alarmDevParam : new DoubleParam() { Name = "DevHigh", Minimun = 0, Maximun = 99999, Value = "0" },                            DevLow = alarmDevLowParam != null ? alarmDevLowParam : new DoubleParam() { Name = "DevLow", Minimun = 0, Maximun = 99999, Value = "0" },                            Unit = alarmUnit,                            DelayTime = alarmDelayTimeParam != null ? alarmDelayTimeParam : new DoubleParam() { Name = "DelayTime", Minimun = 0, Maximun = 99999, Value = "0" },                            Time = alarmTimeParam != null ? alarmTimeParam : new DoubleParam() { Name = "Time", Minimun = 0, Maximun = 99999, Value = "0" },                            ErrorCommand = alarmError                        };                        errorIsCheck = false;                        if (errorCom != null)                        {                            errorIsCheck = errorCom.Default == "ON" ? true : false;                        }                        errorDevParam = null;                        if (errorDevHighCom != null)                        {                            errorDevParam = new DoubleParam()                            {                                Name = errorDevHighCom.DisplayName,                                Minimun = errorDevHighCom.Minimun,                                Maximun = errorDevHighCom.Maximun,                                Value = errorDevHighCom.Value.ToString()                            };                        }                        errorDevLowParam = null;                        if (errorDevLowCom != null)                        {                            errorDevLowParam = new DoubleParam()                            {                                Name = errorDevLowCom.DisplayName,                                Minimun = errorDevLowCom.Minimun,                                Maximun = errorDevLowCom.Maximun,                                Value = errorDevLowCom.Value.ToString()                            };                        }                        errorUnit = "%fs";                        if (errorUnitCom != null)                        {                            errorUnit = errorUnitCom.Default;                        }                        errorDelayTimeParam = null;                        if (errorDelayTimeCom != null)                        {                            errorDelayTimeParam = new DoubleParam()                            {                                Name = errorDelayTimeCom.DisplayName,                                Minimun = errorDelayTimeCom.Minimun,                                Maximun = errorDelayTimeCom.Maximun,                                Value = errorDelayTimeCom.Value.ToString()                            };                        }                        errorTimeParam = null;                        if (errorTimeCom != null)                        {                            errorTimeParam = new DoubleParam()                            {                                Name = errorTimeCom.DisplayName,                                Minimun = errorTimeCom.Minimun,                                Maximun = errorTimeCom.Maximun,                                Value = errorTimeCom.Value.ToString()                            };                        }                        errorError = "Buzzer";                        if (errorErrorCom != null)                        {                            errorError = errorErrorCom.Default;                        }                        alarmConditionPress.AlarmTempData = new TempData()                        {                            Type = CheckType.Alarm,                            IsCheck = errorIsCheck,                            DevHigh = errorDevParam != null ? errorDevParam : new DoubleParam() { Name = "DevHigh", Minimun = 0, Maximun = 99999, Value = "0" },                            DevLow = errorDevLowParam != null ? errorDevLowParam : new DoubleParam() { Name = "DevLow", Minimun = 0, Maximun = 99999, Value = "0" },                            Unit = errorUnit,                            DelayTime = errorDelayTimeParam != null ? errorDelayTimeParam : new DoubleParam() { Name = "DelayTime", Minimun = 0, Maximun = 99999, Value = "0" },                            Time = errorTimeParam != null ? errorTimeParam : new DoubleParam() { Name = "Time", Minimun = 0, Maximun = 99999, Value = "0" },                            ErrorCommand = errorError                        };                        ((AlarmConditionTable)step).PressList.Add(alarmConditionPress);                        break;                    case "AUX":                        string[] aUXList = item.Key.Split('\t');                        AlarmConditionAUX alarmConditionAUX = new AlarmConditionAUX();                        if (aUXList.Length == 3)                        {                            alarmConditionAUX.Index = Convert.ToInt32(aUXList[1]);                            alarmConditionAUX.AUXName = aUXList[2];                        }                        alarmCom = null;                        alarmDevHighCom = null;                        alarmDevLowCom = null;                        alarmUnitCom = null;                        alarmTimeCom = null;                        alarmErrorCom = null;                        errorCom = null;                        errorDevHighCom = null;                        errorDevLowCom = null;                        errorUnitCom = null;                        errorTimeCom = null;                        errorErrorCom = null;                        foreach (var subitem in item.Value)                        {                            switch (subitem.ControlName)                            {                                case "AlarmCheck":                                    alarmCom = subitem;                                    break;                                case "AlarmDevHigh":                                    alarmDevHighCom = subitem;                                    break;                                case "AlarmDevLow":                                    alarmDevLowCom = subitem;                                    break;                                case "AlarmUnit":                                    alarmUnitCom = subitem;                                    break;                                case "AlarmTime":                                    alarmTimeCom = subitem;                                    break;                                case "AlarmErrorCommand":                                    alarmErrorCom = subitem;                                    break;                                case "ErrorCheck":                                    errorCom = subitem;                                    break;                                case "ErrorDevHigh":                                    errorDevHighCom = subitem;                                    break;                                case "ErrorDevLow":                                    errorDevLowCom = subitem;                                    break;                                case "ErrorUnit":                                    errorUnitCom = subitem;                                    break;                                case "ErrorTime":                                    errorTimeCom = subitem;                                    break;                                case "ErrorErrorCommand":                                    errorErrorCom = subitem;                                    break;                                default:                                    break;                            }                        }                        alarmIsCheck = false;                        if (alarmCom != null)                        {                            alarmIsCheck = alarmCom.Default == "ON" ? true : false;                        }                        alarmDevParam = null;                        if (alarmDevHighCom != null)                        {                            alarmDevParam = new DoubleParam()                            {                                Name = alarmDevHighCom.DisplayName,                                Minimun = alarmDevHighCom.Minimun,                                Maximun = alarmDevHighCom.Maximun,                                Value = alarmDevHighCom.Value.ToString()                            };                        }                        alarmDevLowParam = null;                        if (alarmDevLowCom != null)                        {                            alarmDevLowParam = new DoubleParam()                            {                                Name = alarmDevLowCom.DisplayName,                                Minimun = alarmDevLowCom.Minimun,                                Maximun = alarmDevLowCom.Maximun,                                Value = alarmDevLowCom.Value.ToString()                            };                        }                        alarmUnit = "%fs";                        if (alarmUnitCom != null)                        {                            alarmUnit = alarmUnitCom.Default;                        }                        alarmTimeParam = null;                        if (alarmTimeCom != null)                        {                            alarmTimeParam = new DoubleParam()                            {                                Name = alarmTimeCom.DisplayName,                                Minimun = alarmTimeCom.Minimun,                                Maximun = alarmTimeCom.Maximun,                                Value = alarmTimeCom.Value.ToString()                            };                        }                        alarmError = "";                        if (alarmErrorCom != null)                        {                            alarmError = alarmErrorCom.Default;                        }                        alarmConditionAUX.AlertTempData = new TempData()                        {                            Type = CheckType.Alert,                            IsCheck = alarmIsCheck,                            DevHigh = alarmDevParam != null ? alarmDevParam : new DoubleParam() { Name = "DevHigh", Minimun = 0, Maximun = 700, Value = "99" },                            DevLow = alarmDevLowParam != null ? alarmDevLowParam : new DoubleParam() { Name = "DevLow", Minimun = 0, Maximun = 700, Value = "11" },                            Unit = alarmUnit,                            DelayTime = new DoubleParam() { Name = "DelayTime", Minimun = 0, Maximun = 99999, Value = "0" },                            Time = alarmTimeParam != null ? alarmTimeParam : new DoubleParam() { Name = alarmTimeParam.DisplayName, Minimun = 0, Maximun = 99999, Value = "0" },                            ErrorCommand = alarmError                        };                        errorIsCheck = false;                        if (errorCom != null)                        {                            errorIsCheck = errorCom.Default == "ON" ? true : false;                        }                        errorDevParam = null;                        if (errorDevHighCom != null)                        {                            errorDevParam = new DoubleParam()                            {                                Name = errorDevHighCom.DisplayName,                                Minimun = errorDevHighCom.Minimun,                                Maximun = errorDevHighCom.Maximun,                                Value = errorDevHighCom.Value.ToString()                            };                        }                        errorDevLowParam = null;                        if (errorDevLowCom != null)                        {                            errorDevLowParam = new DoubleParam()                            {                                Name = errorDevLowCom.DisplayName,                                Minimun = errorDevLowCom.Minimun,                                Maximun = errorDevLowCom.Maximun,                                Value = errorDevLowCom.Value.ToString()                            };                        }                        errorUnit = "%fs";                        if (errorUnitCom != null)                        {                            errorUnit = errorUnitCom.Default;                        }                        errorTimeParam = null;                        if (errorTimeCom != null)                        {                            errorTimeParam = new DoubleParam()                            {                                Name = errorTimeCom.DisplayName,                                Minimun = errorTimeCom.Minimun,                                Maximun = errorTimeCom.Maximun,                                Value = errorTimeCom.Value.ToString()                            };                        }                        errorError = "Buzzer";                        if (errorErrorCom != null)                        {                            errorError = errorErrorCom.Default;                        }                        alarmConditionAUX.AlarmTempData = new TempData()                        {                            Type = CheckType.Alarm,                            IsCheck = errorIsCheck,                            DevHigh = errorDevParam != null ? errorDevParam : new DoubleParam() { Name = "DevHigh", Minimun = 0, Maximun = 700, Value = "33" },                            DevLow = errorDevLowParam != null ? errorDevLowParam : new DoubleParam() { Name = "DevLow", Minimun = 0, Maximun = 700, Value = "22" },                            Unit = errorUnit,                            DelayTime = new DoubleParam() { Name = "DelayTime", Minimun = 0, Maximun = 99999, Value = "0" },                            Time = errorTimeParam != null ? errorTimeParam : new DoubleParam() { Name = "Time", Minimun = 0, Maximun = 99999, Value = "0" },                            ErrorCommand = errorError                        };                        ((AlarmConditionTable)step).AUXList.Add(alarmConditionAUX);                        break;                    case "HWILK":                        string[] strHWILKList = item.Key.Split('\t');                        AlarmConditionHWILK alarmConditionHWILK = new AlarmConditionHWILK();                        if (strHWILKList.Length == 3)                        {                            alarmConditionHWILK.Index = Convert.ToInt32(strHWILKList[1]);                            alarmConditionHWILK.InterLockName = strHWILKList[2];                        }                        var ErrorCom = item.Value.Where(x => x.ControlName == "ErrorCommand").FirstOrDefault();                        string error = "Monitor";                        if (ErrorCom != null)                        {                            error = ErrorCom.Default;                        }                        alarmConditionHWILK.ErrorCommand = error;                        ((AlarmConditionTable)step).HWILKList.Add(alarmConditionHWILK);                        break;                    case "ValveILK":                        string[] strValveILKList = item.Key.Split('\t');                        AlarmConditionValveILK alarmConditionValveILK = new AlarmConditionValveILK();                        if (strValveILKList.Length == 3)                        {                            alarmConditionValveILK.Index = Convert.ToInt32(strValveILKList[1]);                            alarmConditionValveILK.InterLockName = strValveILKList[2];                        }                        ErrorCom = item.Value.Where(x => x.ControlName == "ErrorCommand").FirstOrDefault();                        error = "Monitor";                        if (ErrorCom != null)                        {                            error = ErrorCom.Default;                        }                        alarmConditionValveILK.ErrorCommand = error;                        ((AlarmConditionTable)step).ValveIlkList.Add(alarmConditionValveILK);                        break;                    case "TempController":                        string[] strTempControlerList = item.Key.Split('\t');                        AlarmConditionTempControler alarmConditionTempControler = new AlarmConditionTempControler();                        if (strTempControlerList.Length == 3)                        {                            alarmConditionTempControler.Index = Convert.ToInt32(strTempControlerList[1]);                            alarmConditionTempControler.InterLockName = strTempControlerList[2];                        }                        ErrorCom = item.Value.Where(x => x.ControlName == "ErrorCommand").FirstOrDefault();                        error = "Monitor";                        if (ErrorCom != null)                        {                            error = ErrorCom.Default;                        }                        alarmConditionTempControler.ErrorCommand = error;                        ((AlarmConditionTable)step).TempControlerList.Add(alarmConditionTempControler);                        break;                    case "APCController":                        string[] strAPCControlerList = item.Key.Split('\t');                        AlarmConditionAPCControler alarmConditionAPCControler = new AlarmConditionAPCControler();                        if (strAPCControlerList.Length == 3)                        {                            alarmConditionAPCControler.Index = Convert.ToInt32(strAPCControlerList[1]);                            alarmConditionAPCControler.InterLockName = strAPCControlerList[2];                        }                        ErrorCom = item.Value.Where(x => x.ControlName == "ErrorCommand").FirstOrDefault();                        error = "Monitor";                        if (ErrorCom != null)                        {                            error = ErrorCom.Default;                        }                        alarmConditionAPCControler.ErrorCommand = error;                        ((AlarmConditionTable)step).APCControlerList.Add(alarmConditionAPCControler);                        break;                    case "CLNAlarm":                        string[] strCLNAlarmList = item.Key.Split('\t');                        AlarmConditionCLNAlarm alarmConditionCLNAlarm = new AlarmConditionCLNAlarm();                        if (strCLNAlarmList.Length == 3)                        {                            alarmConditionCLNAlarm.Index = Convert.ToInt32(strCLNAlarmList[1]);                            alarmConditionCLNAlarm.InterLockName = strCLNAlarmList[2];                        }                        ErrorCom = item.Value.Where(x => x.ControlName == "ErrorCommand").FirstOrDefault();                        error = "Monitor";                        if (ErrorCom != null)                        {                            error = ErrorCom.Default;                        }                        alarmConditionCLNAlarm.ErrorCommand = error;                        ((AlarmConditionTable)step).CLNAlarmList.Add(alarmConditionCLNAlarm);                        break;                    case "TransferError":                        string[] strTransferErrorList = item.Key.Split('\t');                        AlarmConditionTransferError alarmConditionTransferError = new AlarmConditionTransferError();                        if (strTransferErrorList.Length == 3)                        {                            alarmConditionTransferError.Index = Convert.ToInt32(strTransferErrorList[1]);                            alarmConditionTransferError.InterLockName = strTransferErrorList[2];                        }                        ErrorCom = item.Value.Where(x => x.ControlName == "ErrorCommand").FirstOrDefault();                        error = "Monitor";                        if (ErrorCom != null)                        {                            error = ErrorCom.Default;                        }                        alarmConditionTransferError.ErrorCommand = error;                        ((AlarmConditionTable)step).TransferErrorList.Add(alarmConditionTransferError);                        break;                    case "SerialLineDown":                        string[] strSerialLineDownList = item.Key.Split('\t');                        AlarmConditionSerialLineDown alarmConditionSerialLineDown = new AlarmConditionSerialLineDown();                        if (strSerialLineDownList.Length == 3)                        {                            alarmConditionSerialLineDown.Index = Convert.ToInt32(strSerialLineDownList[1]);                            alarmConditionSerialLineDown.InterLockName = strSerialLineDownList[2];                        }                        ErrorCom = item.Value.Where(x => x.ControlName == "ErrorCommand").FirstOrDefault();                        error = "Monitor";                        if (ErrorCom != null)                        {                            error = ErrorCom.Default;                        }                        alarmConditionSerialLineDown.ErrorCommand = error;                        ((AlarmConditionTable)step).SerialLineDownList.Add(alarmConditionSerialLineDown);                        break;                    case "LanLineDown":                        string[] strLanLineDownList = item.Key.Split('\t');                        AlarmConditionLanLineDown alarmConditionLanLineDown = new AlarmConditionLanLineDown();                        if (strLanLineDownList.Length == 3)                        {                            alarmConditionLanLineDown.Index = Convert.ToInt32(strLanLineDownList[1]);                            alarmConditionLanLineDown.InterLockName = strLanLineDownList[2];                        }                         ErrorCom = item.Value.Where(x => x.ControlName == "ErrorCommand").FirstOrDefault();                         error = "Monitor";                        if (ErrorCom != null)                        {                            error = ErrorCom.Default;                        }                        alarmConditionLanLineDown.ErrorCommand = error;                        ((AlarmConditionTable)step).LanLineDownList.Add(alarmConditionLanLineDown);                        break;                    case "Sensor":                        string[] sensorList = item.Key.Split('\t');                        AlarmConditionSensor alarmConditionSensor = new AlarmConditionSensor();                        if (sensorList.Length == 3)                            alarmConditionSensor.SensorName = sensorList[2];                         alarmCom = item.Value.Where(x => x.ControlName == "AlarmCheck").FirstOrDefault();                         alarmIsCheck = false;                        if (alarmCom != null)                        {                            alarmIsCheck = alarmCom.Default == "ON" ? true : false;                        }                         alarmDevHighCom = item.Value.Where(x => x.ControlName == "AlarmDevHigh").FirstOrDefault();                         alarmDevParam = null;                        if (alarmDevHighCom != null)                        {                            alarmDevParam = new DoubleParam()                            {                                Name = alarmDevHighCom.DisplayName,                                Minimun = alarmDevHighCom.Minimun,                                Maximun = alarmDevHighCom.Maximun,                                Value = alarmDevHighCom.Value.ToString()                            };                        }                         alarmDevLowCom = item.Value.Where(x => x.ControlName == "AlarmDevLow").FirstOrDefault();                         alarmDevLowParam = null;                        if (alarmDevLowCom != null)                        {                            alarmDevLowParam = new DoubleParam()                            {                                Name = alarmDevLowCom.DisplayName,                                Minimun = alarmDevLowCom.Minimun,                                Maximun = alarmDevLowCom.Maximun,                                Value = alarmDevLowCom.Value.ToString()                            };                        }                         alarmUnitCom = item.Value.Where(x => x.ControlName == "AlarmUnit").FirstOrDefault();                         alarmUnit = "%fs";                        if (alarmUnitCom != null)                        {                            alarmUnit = alarmUnitCom.Default;                        }                         alarmTimeCom = item.Value.Where(x => x.ControlName == "AlarmTime").FirstOrDefault();                         alarmTimeParam = null;                        if (alarmTimeCom != null)                        {                            alarmTimeParam = new DoubleParam()                            {                                Name = alarmTimeCom.DisplayName,                                Minimun = alarmTimeCom.Minimun,                                Maximun = alarmTimeCom.Maximun,                                Value = alarmTimeCom.Value.ToString()                            };                        }                         alarmErrorCom = item.Value.Where(x => x.ControlName == "AlarmErrorCommand").FirstOrDefault();                         alarmError = "";                        if (alarmErrorCom != null)                        {                            alarmError = alarmErrorCom.Default;                        }                        alarmConditionSensor.AlertTempData = new TempData()                        {                            Type = CheckType.Alert,                            IsCheck = alarmIsCheck,                            DevHigh = alarmDevParam != null ? alarmDevParam : new DoubleParam() { Name = "DevHigh", Minimun = 0, Maximun = 700, Value = "99" },                            DevLow = alarmDevLowParam != null ? alarmDevLowParam : new DoubleParam() { Name = "DevLow", Minimun = 0, Maximun = 700, Value = "11" },                            Unit = alarmUnit,                            DelayTime = new DoubleParam() { Name = "DelayTime", Minimun = 0, Maximun = 99999, Value = "0" },                            Time = alarmTimeParam != null ? alarmTimeParam : new DoubleParam() { Name = alarmTimeParam.DisplayName, Minimun = 0, Maximun = 99999, Value = "0" },                            ErrorCommand = alarmError                        };                         errorCom = item.Value.Where(x => x.ControlName == "ErrorCheck").FirstOrDefault();                         errorIsCheck = false;                        if (errorCom != null)                        {                            errorIsCheck = errorCom.Default == "ON" ? true : false;                        }                         errorDevHighCom = item.Value.Where(x => x.ControlName == "ErrorDevHigh").FirstOrDefault();                         errorDevParam = null;                        if (errorDevHighCom != null)                        {                            errorDevParam = new DoubleParam()                            {                                Name = errorDevHighCom.DisplayName,                                Minimun = errorDevHighCom.Minimun,                                Maximun = errorDevHighCom.Maximun,                                Value = errorDevHighCom.Value.ToString()                            };                        }                         errorDevLowCom = item.Value.Where(x => x.ControlName == "ErrorDevLow").FirstOrDefault();                         errorDevLowParam = null;                        if (errorDevLowCom != null)                        {                            errorDevLowParam = new DoubleParam()                            {                                Name = errorDevLowCom.DisplayName,                                Minimun = errorDevLowCom.Minimun,                                Maximun = errorDevLowCom.Maximun,                                Value = errorDevLowCom.Value.ToString()                            };                        }                         errorUnitCom = item.Value.Where(x => x.ControlName == "ErrorUnit").FirstOrDefault();                         errorUnit = "%fs";                        if (errorUnitCom != null)                        {                            errorUnit = errorUnitCom.Default;                        }                         errorTimeCom = item.Value.Where(x => x.ControlName == "ErrorTime").FirstOrDefault();                         errorTimeParam = null;                        if (errorTimeCom != null)                        {                            errorTimeParam = new DoubleParam()                            {                                Name = errorTimeCom.DisplayName,                                Minimun = errorTimeCom.Minimun,                                Maximun = errorTimeCom.Maximun,                                Value = errorTimeCom.Value.ToString()                            };                        }                         errorErrorCom = item.Value.Where(x => x.ControlName == "ErrorErrorCommand").FirstOrDefault();                         errorError = "Buzzer";                        if (errorErrorCom != null)                        {                            errorError = errorErrorCom.Default;                        }                        alarmConditionSensor.AlarmTempData = new TempData()                        {                            Type = CheckType.Alarm,                            IsCheck = errorIsCheck,                            DevHigh = errorDevParam != null ? errorDevParam : new DoubleParam() { Name = "DevHigh", Minimun = 0, Maximun = 700, Value = "33" },                            DevLow = errorDevLowParam != null ? errorDevLowParam : new DoubleParam() { Name = "DevLow", Minimun = 0, Maximun = 700, Value = "22" },                            Unit = errorUnit,                            DelayTime = new DoubleParam() { Name = "DelayTime", Minimun = 0, Maximun = 99999, Value = "0" },                            Time = errorTimeParam != null ? errorTimeParam : new DoubleParam() { Name = "Time", Minimun = 0, Maximun = 99999, Value = "0" },                            ErrorCommand = errorError                        };                        ((AlarmConditionTable)step).SensorList.Add(alarmConditionSensor);                        break;                    case "Other":                        string[] strOtherList = item.Key.Split('\t');                        AlarmConditionOther alarmConditionOther = new AlarmConditionOther();                        if (strOtherList.Length == 3)                        {                            alarmConditionOther.Index = Convert.ToInt32(strOtherList[1]);                            alarmConditionOther.InterLockName = strOtherList[2];                        }                         ErrorCom = item.Value.FirstOrDefault(x => x.ControlName == "ErrorCommand");                         error = "Monitor";                        if (ErrorCom != null)                        {                            error = ErrorCom.Default;                        }                        alarmConditionOther.ErrorCommand = error;                        ((AlarmConditionTable)step).OtherList.Add(alarmConditionOther);                        break;                    default:                        break;                }                //if (item.Key.Contains("DeviceNetLineDown"))                //{                //    string[] strDeviceNetLineDownList = item.Key.Split('\t');                //    AlarmConditionDeviceNetLineDown alarmConditionDeviceNetLineDown = new AlarmConditionDeviceNetLineDown();                //    if (strDeviceNetLineDownList.Length == 3)                //    {                //        alarmConditionDeviceNetLineDown.Index = Convert.ToInt32(strDeviceNetLineDownList[1]);                //        alarmConditionDeviceNetLineDown.InterLockName = strDeviceNetLineDownList[2];                //    }                //    var ErrorCom = item.Value.Where(x => x.ControlName == "ErrorCommand").FirstOrDefault();                //    string error = "Monitor";                //    if (ErrorCom != null)                //    {                //        error = ErrorCom.Default;                //    }                //    alarmConditionDeviceNetLineDown.ErrorCommand = error;                //    ((AlarmConditionTable)step).DeviceNetLineDownList.Add(alarmConditionDeviceNetLineDown);                //}            }        }        public override string GetXmlString()        {            XmlElement nodeData = _doc.SelectSingleNode($"Aitex/TableParameterData") as XmlElement;            nodeData.SetAttribute("CreatedBy", Creator);            nodeData.SetAttribute("CreationTime", CreateTime.ToString("yyyy-MM-dd HH:mm:ss"));            nodeData.SetAttribute("LastRevisedBy", Revisor);            nodeData.SetAttribute("LastRevisionTime", ReviseTime.ToString("yyyy-MM-dd HH:mm:ss"));            nodeData.SetAttribute("Description", Description);            nodeData.SetAttribute("ParameterChamberType", ChamberType);            nodeData.SetAttribute("Version", Version);            nodeData.SetAttribute("TableNumber", TableNumber.ToString());            nodeData.SetAttribute("Permission", Permission);            nodeData.SetAttribute("ParameterLevel", Level);            XmlNode nodeModule = _doc.SelectSingleNode($"Aitex/TableParameterData/Module[@Name='{_module}']");            if (nodeModule == null)            {                nodeModule = _doc.CreateElement("Module");                nodeData.AppendChild(nodeModule);            }            nodeModule.RemoveAll();            (nodeModule as XmlElement).SetAttribute("Name", _module);            int i = 0;            foreach (ParameterTable parameters in Steps)            {                XmlElement nodeStep = _doc.CreateElement("Step");                nodeStep.SetAttribute("StepNo", parameters.StepNo.ToString());                nodeStep.SetAttribute("Name", parameters.Name);                // nodeStep.SetAttribute("UseTemp", parameters.UseTemp);                var heaterDatas = ((AlarmConditionTable)parameters).HeaterTempList.Select(x => x.ToString()).ToArray();                nodeStep.SetAttribute($"TempHeater", string.Join("|", heaterDatas));                var boatDatas = ((AlarmConditionTable)parameters).BoatTempList.Select(x => x.ToString()).ToArray();                nodeStep.SetAttribute($"TempBoat", string.Join("|", boatDatas));                var flowDeviationDatas = ((AlarmConditionTable)parameters).MFCFlowDeviationList.Select(x => x.ToString()).ToArray();                nodeStep.SetAttribute($"FlowDeviation", string.Join("|", flowDeviationDatas));                var pressDatas = ((AlarmConditionTable)parameters).PressList.Select(x => x.ToString()).ToArray();                nodeStep.SetAttribute($"Press", string.Join("|", pressDatas));                var aUXDatas = ((AlarmConditionTable)parameters).AUXList.Select(x => x.ToString()).ToArray();                nodeStep.SetAttribute($"AUX", string.Join("|", aUXDatas));                nodeModule.AppendChild(nodeStep);                var strHWILKList = ((AlarmConditionTable)parameters).HWILKList.Select(x => x.ToString()).ToArray();                nodeStep.SetAttribute($"HWILK", string.Join("|", strHWILKList));                var strValveILKList = ((AlarmConditionTable)parameters).ValveIlkList.Select(x => x.ToString()).ToArray();                nodeStep.SetAttribute($"ValveILK", string.Join("|", strValveILKList));                var strTempControlerList = ((AlarmConditionTable)parameters).TempControlerList.Select(x => x.ToString()).ToArray();                nodeStep.SetAttribute($"TempController", string.Join("|", strTempControlerList));                var strAPCControlerList = ((AlarmConditionTable)parameters).APCControlerList.Select(x => x.ToString()).ToArray();                nodeStep.SetAttribute($"APCController", string.Join("|", strAPCControlerList));                var strCLNAlarmList = ((AlarmConditionTable)parameters).CLNAlarmList.Select(x => x.ToString()).ToArray();                nodeStep.SetAttribute($"CLNAlarmList", string.Join("|", strCLNAlarmList));                var strTransferErrorList = ((AlarmConditionTable)parameters).TransferErrorList.Select(x => x.ToString()).ToArray();                nodeStep.SetAttribute($"TransferError", string.Join("|", strTransferErrorList));                var strSerialLineDownList = ((AlarmConditionTable)parameters).SerialLineDownList.Select(x => x.ToString()).ToArray();                nodeStep.SetAttribute($"SerialLineDown", string.Join("|", strSerialLineDownList));                var strLanLineDownList = ((AlarmConditionTable)parameters).LanLineDownList.Select(x => x.ToString()).ToArray();                nodeStep.SetAttribute($"LanLineDown", string.Join("|", strLanLineDownList));                //var strDeviceNetLineDownList = ((AlarmConditionTable)parameters).DeviceNetLineDownList.Select(x => x.ToString()).ToArray();                //nodeStep.SetAttribute($"DeviceNetLineDown", string.Join("|", strDeviceNetLineDownList));                var strSensorList = ((AlarmConditionTable)parameters).SensorList.Select(x => x.ToString()).ToArray();                nodeStep.SetAttribute($"Sensor", string.Join("|", strSensorList));                var strOtherList = ((AlarmConditionTable)parameters).OtherList.Select(x => x.ToString()).ToArray();                nodeStep.SetAttribute($"Other", string.Join("|", strOtherList));                nodeModule.AppendChild(nodeStep);                i++;            }            return _doc.OuterXml;        }        public override void InitData(string prefixPath, string recipeName, string recipeContent, string module)        {            IsCompatibleWithCurrentFormat = false;            _module = module;            Name = recipeName;            PrefixPath = prefixPath;            try            {                _doc = new XmlDocument();                _doc.LoadXml(recipeContent);                if (!LoadHeader(_doc.SelectSingleNode("Aitex/TableParameterData")))                    return;                XmlNodeList nodeSteps = _doc.SelectNodes($"Aitex/TableParameterData/Module[@Name='{module}']/Step");                if (nodeSteps == null)                    nodeSteps = _doc.SelectNodes($"Aitex/TableParameterData/Step");                LoadSteps(nodeSteps);                var index = 1;                foreach (ParameterTable parameters in Steps)                {                    parameters.Value = index.ToString();                    index++;                }                //   ValidLoopData();                XmlNode nodeConfig =                    _doc.SelectSingleNode($"Aitex/TableParameterData/Module[@Name='{module}']/Config");                if (nodeSteps == null)                    nodeConfig = _doc.SelectSingleNode($"Aitex/TableParameterData/Config");                IsCompatibleWithCurrentFormat = true;            }            catch (Exception ex)            {                LOG.Write(ex);            }        }        public override void LoadSteps(XmlNodeList steps)        {            Steps.Clear();            PopSettingSteps.Clear();            StepTolerances.Clear();            StepNos.Clear();            int index = 1;            foreach (XmlNode nodeStep in steps)            {                ParameterTable stepTable = this.CreateStep(nodeStep);                StepNos.Add(stepTable.StepNo);                Steps.Add(stepTable);                index++;            }        }    }}
 |