| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385 | using Caliburn.Micro.Core;using RecipeEditorLib.RecipeModel.Params;using System;using System.Collections.Generic;using System.Collections.ObjectModel;using System.Linq;using System.Text;using System.Threading.Tasks;namespace MECF.Framework.UI.Client.CenterViews.Parameter{    public class AlarmConditionTable : ParameterTable    {        private ObservableCollection<AlarmConditionHeaterTemp> _heaterTempList = new ObservableCollection<AlarmConditionHeaterTemp>();        public ObservableCollection<AlarmConditionHeaterTemp> HeaterTempList        {            get => _heaterTempList;            set            {                _heaterTempList = value;                NotifyOfPropertyChange(nameof(HeaterTempList));            }        }        private ObservableCollection<AlarmConditionBoatTemp> _boatTempList = new ObservableCollection<AlarmConditionBoatTemp>();        public ObservableCollection<AlarmConditionBoatTemp> BoatTempList        {            get => _boatTempList;            set            {                _boatTempList = value;                NotifyOfPropertyChange(nameof(BoatTempList));            }        }        private ObservableCollection<AlarmConditionMFCFlowDeviation> _mFCFlowDeviationList = new ObservableCollection<AlarmConditionMFCFlowDeviation>();        public ObservableCollection<AlarmConditionMFCFlowDeviation> MFCFlowDeviationList        {            get => _mFCFlowDeviationList;            set            {                _mFCFlowDeviationList = value;                NotifyOfPropertyChange(nameof(MFCFlowDeviationList));            }        }        private ObservableCollection<AlarmConditionMFCOther> _mFCOtherList = new ObservableCollection<AlarmConditionMFCOther>();        public ObservableCollection<AlarmConditionMFCOther> MFCOtherList        {            get => _mFCOtherList;            set            {                _mFCOtherList = value;                NotifyOfPropertyChange(nameof(MFCOtherList));            }        }        private ObservableCollection<AlarmConditionPress> _pressList = new ObservableCollection<AlarmConditionPress>();        public ObservableCollection<AlarmConditionPress> PressList        {            get => _pressList;            set            {                _pressList = value;                NotifyOfPropertyChange(nameof(PressList));            }        }        private ObservableCollection<AlarmConditionAUX> _aUXList = new ObservableCollection<AlarmConditionAUX>();        public ObservableCollection<AlarmConditionAUX> AUXList        {            get => _aUXList;            set            {                _aUXList = value;                NotifyOfPropertyChange(nameof(AUXList));            }        }        private ObservableCollection<AlarmConditionHWILK> _hWILKList = new ObservableCollection<AlarmConditionHWILK>();        public ObservableCollection<AlarmConditionHWILK> HWILKList        {            get => _hWILKList;            set            {                _hWILKList = value;                NotifyOfPropertyChange(nameof(HWILKList));            }        }        private ObservableCollection<AlarmConditionValveILK> _valveIlkList = new ObservableCollection<AlarmConditionValveILK>();        public ObservableCollection<AlarmConditionValveILK> ValveIlkList        {            get => _valveIlkList;            set            {                _valveIlkList = value;                NotifyOfPropertyChange(nameof(ValveIlkList));            }        }        private ObservableCollection<AlarmConditionTempControler> _tempControlerList = new ObservableCollection<AlarmConditionTempControler>();        public ObservableCollection<AlarmConditionTempControler> TempControlerList        {            get => _tempControlerList;            set            {                _tempControlerList = value;                NotifyOfPropertyChange(nameof(TempControlerList));            }        }        private ObservableCollection<AlarmConditionAPCControler> _apcControlerList = new ObservableCollection<AlarmConditionAPCControler>();        public ObservableCollection<AlarmConditionAPCControler> APCControlerList        {            get => _apcControlerList;            set            {                _apcControlerList = value;                NotifyOfPropertyChange(nameof(APCControlerList));            }        }        private ObservableCollection<AlarmConditionTransferError> _transferErrorList = new ObservableCollection<AlarmConditionTransferError>();        public ObservableCollection<AlarmConditionTransferError> TransferErrorList        {            get => _transferErrorList;            set            {                _transferErrorList = value;                NotifyOfPropertyChange(nameof(TransferErrorList));            }        }        private ObservableCollection<AlarmConditionSerialLineDown> _serialLineDownList = new ObservableCollection<AlarmConditionSerialLineDown>();        public ObservableCollection<AlarmConditionSerialLineDown> SerialLineDownList        {            get => _serialLineDownList;            set            {                _serialLineDownList = value;                NotifyOfPropertyChange(nameof(SerialLineDownList));            }        }        private ObservableCollection<AlarmConditionLanLineDown> _lanLineDownList = new ObservableCollection<AlarmConditionLanLineDown>();        public ObservableCollection<AlarmConditionLanLineDown> LanLineDownList        {            get => _lanLineDownList;            set            {                _lanLineDownList = value;                NotifyOfPropertyChange(nameof(LanLineDownList));            }        }        private ObservableCollection<AlarmConditionDeviceNetLineDown> _deviceNetLineDownList = new ObservableCollection<AlarmConditionDeviceNetLineDown>();        public ObservableCollection<AlarmConditionDeviceNetLineDown> DeviceNetLineDownList        {            get => _deviceNetLineDownList;            set            {                _deviceNetLineDownList = value;                NotifyOfPropertyChange(nameof(DeviceNetLineDownList));            }        }        private ObservableCollection<AlarmConditionSensor> _sensorList = new ObservableCollection<AlarmConditionSensor>();        public ObservableCollection<AlarmConditionSensor> SensorList        {            get => _sensorList;            set            {                _sensorList = value;                NotifyOfPropertyChange(nameof(SensorList));            }        }        private ObservableCollection<AlarmConditionOther> _otherList = new ObservableCollection<AlarmConditionOther>();        public ObservableCollection<AlarmConditionOther> OtherList        {            get => _otherList;            set            {                _otherList = value;                NotifyOfPropertyChange(nameof(OtherList));            }        }        public AlarmConditionTable() : base()        {        }        public void SetHeaterTempData(string value)        {            if (string.IsNullOrEmpty(value)) return;            string[] strHeaterTemp = value.Split('|');            foreach (var item in strHeaterTemp)            {                if (string.IsNullOrEmpty(item)) continue;                string[] subHeaterTemp = item.Split(';');                var selectHeaterTemp = HeaterTempList.Where(x => x.ZoneName == subHeaterTemp[0]).FirstOrDefault();                if (selectHeaterTemp != null)                {                    selectHeaterTemp.SetStringValue(item);                }            }        }        public void SetBoatTempData(string value)        {            if (string.IsNullOrEmpty(value)) return;            string[] strBoatTemp = value.Split('|');            foreach (var item in strBoatTemp)            {                if (string.IsNullOrEmpty(item)) continue;                string[] subBoatTemp = item.Split(',');                var selectBoatTemp = BoatTempList.Where(x => x.BoatMotion == subBoatTemp[0]).FirstOrDefault();                if (selectBoatTemp != null)                {                    selectBoatTemp.SetStringValue(item);                }            }        }        public void SetMFCFlowDeviationData(string value)        {            if (string.IsNullOrEmpty(value)) return;            string[] strFlowDeviation = value.Split('|');            foreach (var item in strFlowDeviation)            {                if (string.IsNullOrEmpty(item)) continue;                string[] subFlowDeviation = item.Split(';');                var selectFlowDeviation = MFCFlowDeviationList.Where(x => x.MFCName == subFlowDeviation[1]).FirstOrDefault();                if (selectFlowDeviation != null)                {                    selectFlowDeviation.SetStringValue(item);                }            }        }        public void SetPressData(string value)        {            if (string.IsNullOrEmpty(value)) return;            string[] strPress = value.Split('|');            int indexNo = 1;            foreach (var item in strPress)            {                if (string.IsNullOrEmpty(item)) continue;                string[] subPress = item.Split(';');                AlarmConditionPress selectPress = null;                if (subPress[0] == "0")                {                    selectPress = PressList.Where(x => x.Index == indexNo).FirstOrDefault();                }                else                {                    selectPress = PressList.Where(x => x.Index.ToString() == subPress[0]).FirstOrDefault();                }                indexNo++;                if (selectPress != null)                {                    selectPress.SetStringValue(item);                }            }        }        public void SetAUXData(string value)        {            if (string.IsNullOrEmpty(value)) return;            string[] strAUX = value.Split('|');            foreach (var item in strAUX)            {                if (string.IsNullOrEmpty(item)) continue;                string[] subAUX = item.Split(';');                var selectAUX = AUXList.Where(x => x.Index.ToString() == subAUX[0]).FirstOrDefault();                if (selectAUX != null)                {                    selectAUX.SetStringValue(item);                }            }        }        public void SetHWILKData(string value)        {            if (string.IsNullOrEmpty(value)) return;            string[] strHWILK = value.Split('|');            foreach (var item in strHWILK)            {                if (string.IsNullOrEmpty(item)) continue;                string[] subHWILK = item.Split(',');                var selectHWILK = HWILKList.Where(x => x.InterLockName == subHWILK[1]).FirstOrDefault();                if (selectHWILK != null)                {                    selectHWILK.SetStringValue(item);                }            }        }        public void SetValveIlkData(string value)        {            if (string.IsNullOrEmpty(value)) return;            string[] strValveIlk = value.Split('|');            foreach (var item in strValveIlk)            {                if (string.IsNullOrEmpty(item)) continue;                string[] subValveIlk = item.Split(',');                var selectValveIlk = ValveIlkList.Where(x => x.InterLockName == subValveIlk[1]).FirstOrDefault();                if (selectValveIlk != null)                {                    selectValveIlk.SetStringValue(item);                }            }        }        public void SetTempControlerData(string value)        {            if (string.IsNullOrEmpty(value)) return;            string[] strTempControler = value.Split('|');            foreach (var item in strTempControler)            {                if (string.IsNullOrEmpty(item)) continue;                string[] subTempControler = item.Split(',');                var selectTempControler = TempControlerList.Where(x => x.InterLockName == subTempControler[1]).FirstOrDefault();                if (selectTempControler != null)                {                    selectTempControler.SetStringValue(item);                }            }        }        public void SetAPCControlerData(string value)        {            if (string.IsNullOrEmpty(value)) return;            string[] strAPCControler = value.Split('|');            foreach (var item in strAPCControler)            {                if (string.IsNullOrEmpty(item)) continue;                string[] subAPCControler = item.Split(',');                var selectAPCControler = APCControlerList.Where(x => x.InterLockName == subAPCControler[1]).FirstOrDefault();                if (selectAPCControler != null)                {                    selectAPCControler.SetStringValue(item);                }            }        }        public void SetTransferErrorData(string value)        {            if (string.IsNullOrEmpty(value)) return;            string[] strTransferError = value.Split('|');            foreach (var item in strTransferError)            {                if (string.IsNullOrEmpty(item)) continue;                string[] subTransferError = item.Split(',');                var selectTransferError = TransferErrorList.Where(x => x.InterLockName == subTransferError[1]).FirstOrDefault();                if (selectTransferError != null)                {                    selectTransferError.SetStringValue(item);                }            }        }        public void SetSerialLineDownData(string value)        {            if (string.IsNullOrEmpty(value)) return;            string[] strSerialLineDown = value.Split('|');            foreach (var item in strSerialLineDown)            {                if (string.IsNullOrEmpty(item)) continue;                string[] subSerialLineDown = item.Split(',');                var selectSerialLineDown = SerialLineDownList.FirstOrDefault(x => x.InterLockName == subSerialLineDown[1]);                if (selectSerialLineDown != null)                {                    selectSerialLineDown.SetStringValue(item);                }            }        }        public void SetLanLineDownData(string value)        {            if (string.IsNullOrEmpty(value)) return;            string[] strSerialLineDown = value.Split('|');            foreach (var item in strSerialLineDown)            {                if (string.IsNullOrEmpty(item)) continue;                string[] subSerialLineDown = item.Split(',');                var selectSerialLineDown = LanLineDownList.FirstOrDefault(x => x.InterLockName == subSerialLineDown[1]);                if (selectSerialLineDown != null)                {                    selectSerialLineDown.SetStringValue(item);                }            }        }        public void SetDeviceNetLineDownData(string value)        {            if (string.IsNullOrEmpty(value)) return;            string[] strDeviceNetLineDown = value.Split('|');            foreach (var item in strDeviceNetLineDown)            {                if (string.IsNullOrEmpty(item)) continue;                string[] subDeviceNetLineDown = item.Split(',');                var selectDeviceNetLineDown = DeviceNetLineDownList.FirstOrDefault(x => x.InterLockName == subDeviceNetLineDown[1]);                if (selectDeviceNetLineDown != null)                {                    selectDeviceNetLineDown.SetStringValue(item);                }            }        }        public void SetSensorData(string value)        {            if (string.IsNullOrEmpty(value)) return;            string[] strSensor = value.Split('|');            foreach (var item in strSensor)            {                if (string.IsNullOrEmpty(item)) continue;                string[] subSensor = item.Split(',');                var selectSensor = SensorList.Where(x => x.SensorName == subSensor[1]).FirstOrDefault();                if (selectSensor != null)                {                    selectSensor.SetStringValue(item);                }            }        }        public void SetOtherData(string value)        {            if (string.IsNullOrEmpty(value)) return;            string[] strOther = value.Split('|');            foreach (var item in strOther)            {                if (string.IsNullOrEmpty(item)) continue;                string[] subOther = item.Split(',');                var selectOther = OtherList.Where(x => x.InterLockName == subOther[1]).FirstOrDefault();                if (selectOther != null)                {                    selectOther.SetStringValue(item);                }            }        }    }    public class AlarmConditionDataBase : PropertyChangedBase    {        private int _index;        public int Index        {            get => _index;            set            {                _index = value;                NotifyOfPropertyChange(nameof(Index));            }        }        private string _interLockName;        public string InterLockName        {            get => _interLockName;            set            {                _interLockName = value;                NotifyOfPropertyChange(nameof(InterLockName));            }        }        private CheckType _type;        public CheckType Type        {            get => _type;            set            {                _type = value;                NotifyOfPropertyChange(nameof(Type));            }        }        private bool _isCheck;        public bool IsCheck        {            get => _isCheck;            set            {                _isCheck = value;                NotifyOfPropertyChange(nameof(IsCheck));            }        }        private string _errorCommand;        public string ErrorCommand        {            get => _errorCommand;            set            {                _errorCommand = value;                NotifyOfPropertyChange(nameof(ErrorCommand));            }        }        public override string ToString()        {            List<string> rtnList = new List<string>();            rtnList.Add(Index.ToString());            rtnList.Add(InterLockName);            rtnList.Add(Type.ToString());            rtnList.Add(IsCheck.ToString());            rtnList.Add(ErrorCommand);            return string.Join(",", rtnList.ToArray());        }        public virtual bool SetStringValue(string value)        {            return true;        }    }    public class AlarmConditionHeaterTemp : PropertyChangedBase    {        private string _zoneName;        public string ZoneName        {            get => _zoneName;            set            {                _zoneName = value;                NotifyOfPropertyChange(nameof(ZoneName));            }        }        private TempData _alertTempData;        public TempData AlertTempData        {            get => _alertTempData;            set            {                _alertTempData = value;                NotifyOfPropertyChange(nameof(AlertTempData));            }        }        private TempData _alarmTempData;        public TempData AlarmTempData        {            get => _alarmTempData;            set            {                _alarmTempData = value;                NotifyOfPropertyChange(nameof(AlarmTempData));            }        }        public override string ToString()        {            return $"{ZoneName};{AlertTempData.ToString()};{AlarmTempData.ToString()}";        }        public bool SetStringValue(string value)        {            if (string.IsNullOrEmpty(value) || value.Split(';').Length != 3) return false;            var list = value.Split(';');            AlertTempData.SetStringValue(list[1]);            AlarmTempData.SetStringValue(list[2]);            return true;        }    }    public class AlarmConditionBoatTemp : PropertyChangedBase    {        private string _boatMotion;        public string BoatMotion        {            get => _boatMotion;            set            {                _boatMotion = value;                NotifyOfPropertyChange(nameof(BoatMotion));            }        }        private CheckType _type = CheckType.Alarm;        public CheckType Type        {            get => _type;            set            {                _type = value;                NotifyOfPropertyChange(nameof(Type));            }        }        private bool _isCheck = false;        public bool IsCheck        {            get => _isCheck;            set            {                _isCheck = value;                NotifyOfPropertyChange(nameof(IsCheck));            }        }        private DoubleParam _highLimit;        public DoubleParam HighLimit        {            get => _highLimit;            set            {                _highLimit = value;                NotifyOfPropertyChange(nameof(HighLimit));            }        }        private string _unit;        public string Unit        {            get => _unit;            set            {                _unit = value;                NotifyOfPropertyChange(nameof(Unit));            }        }        public override string ToString()        {            List<string> rtnList = new List<string>();            rtnList.Add(BoatMotion);            rtnList.Add(Type.ToString());            rtnList.Add(IsCheck.ToString());            if (HighLimit == null)            {                rtnList.Add("");            }            else            {                rtnList.Add(HighLimit.Value);            }            rtnList.Add(Unit);            return string.Join(",", rtnList.ToArray());        }        public bool SetStringValue(string value)        {            if (string.IsNullOrEmpty(value)) return false;            if (!value.Contains(",") || value.Split(',').Length != 5) return false;            var strArray = value.Split(',');            BoatMotion = strArray[0];            Type = (CheckType)Enum.Parse(typeof(CheckType), strArray[1]);            IsCheck = bool.Parse(strArray[2]);            if (HighLimit != null)            {                HighLimit.Value = strArray[3];            }            Unit = strArray[4];            return true;        }    }    public class AlarmConditionMFCDeviation : PropertyChangedBase    {        private int _index;        public int Index        {            get => _index;            set            {                _index = value;                NotifyOfPropertyChange(nameof(Index));            }        }        private string _mFCName;        public string MFCName        {            get => _mFCName;            set            {                _mFCName = value;                NotifyOfPropertyChange(nameof(MFCName));            }        }        private TempData _alertTempData;        public TempData AlertTempData        {            get => _alertTempData;            set            {                _alertTempData = value;                NotifyOfPropertyChange(nameof(AlertTempData));            }        }        private TempData _alarmTempData;        public TempData AlarmTempData        {            get => _alarmTempData;            set            {                _alarmTempData = value;                NotifyOfPropertyChange(nameof(AlarmTempData));            }        }        public override string ToString()        {            string[] strArray = new string[]                {                    Index.ToString(),                    MFCName,                    AlertTempData.ToString(),                    AlarmTempData.ToString()                };            return string.Join(";", strArray);        }        public bool SetStringValue(string value)        {            if (string.IsNullOrEmpty(value) || value.Split(';').Length != 4) return false;            var list = value.Split(';');            Index = Convert.ToInt32(list[0]);            MFCName = list[1];            AlertTempData.SetStringValue(list[2]);            AlarmTempData.SetStringValue(list[3]);            return true;        }    }    public class AlarmConditionMFCFlowDeviation : AlarmConditionMFCDeviation    {    }    public class AlarmConditionMFCOther : AlarmConditionMFCDeviation    { }    public class AlarmConditionPress : PropertyChangedBase    {        private int _index;        public int Index        {            get => _index;            set            {                _index = value;                NotifyOfPropertyChange(nameof(Index));            }        }        private string _pressKindName;        public string PressKindName        {            get => _pressKindName;            set            {                _pressKindName = value;                NotifyOfPropertyChange(nameof(PressKindName));            }        }        private TempData _alertTempData;        public TempData AlertTempData        {            get => _alertTempData;            set            {                _alertTempData = value;                NotifyOfPropertyChange(nameof(AlertTempData));            }        }        private TempData _alarmTempData;        public TempData AlarmTempData        {            get => _alarmTempData;            set            {                _alarmTempData = value;                NotifyOfPropertyChange(nameof(AlarmTempData));            }        }        public override string ToString()        {            string[] strArray = new string[]                {                    Index.ToString(),                    PressKindName,                    AlertTempData.ToString(),                    AlarmTempData.ToString()                };            return string.Join(";", strArray);        }        public bool SetStringValue(string value)        {            if (string.IsNullOrEmpty(value) || value.Split(';').Length != 4) return false;            var list = value.Split(';');            Index = Convert.ToInt32(list[0]);            PressKindName = list[1];            AlertTempData.SetStringValue(list[2]);            AlarmTempData.SetStringValue(list[3]);            return true;        }    }    public class AlarmConditionAUX : PropertyChangedBase    {        private int _index;        public int Index        {            get => _index;            set            {                _index = value;                NotifyOfPropertyChange(nameof(Index));            }        }        private string _aUXName;        public string AUXName        {            get => _aUXName;            set            {                _aUXName = value;                NotifyOfPropertyChange(nameof(AUXName));            }        }        private TempData _alertTempData;        public TempData AlertTempData        {            get => _alertTempData;            set            {                _alertTempData = value;                NotifyOfPropertyChange(nameof(AlertTempData));            }        }        private TempData _alarmTempData;        public TempData AlarmTempData        {            get => _alarmTempData;            set            {                _alarmTempData = value;                NotifyOfPropertyChange(nameof(AlarmTempData));            }        }        public override string ToString()        {            string[] strArray = new string[]                {                    Index.ToString(),                    AUXName,                    AlertTempData.ToString(),                    AlarmTempData.ToString()                };            return string.Join(";", strArray);        }        public bool SetStringValue(string value)        {            if (string.IsNullOrEmpty(value) || value.Split(';').Length != 4) return false;            var list = value.Split(';');            Index = Convert.ToInt32(list[0]);            AUXName = list[1];            AlertTempData.SetStringValue(list[2]);            AlarmTempData.SetStringValue(list[3]);            return true;        }    }    public class AlarmConditionHWILK : PropertyChangedBase    {        private int _index;        public int Index        {            get => _index;            set            {                _index = value;                NotifyOfPropertyChange(nameof(Index));            }        }        private string _interLockName;        public string InterLockName        {            get => _interLockName;            set            {                _interLockName = value;                NotifyOfPropertyChange(nameof(InterLockName));            }        }        private CheckType _type;        public CheckType Type        {            get => _type;            set            {                _type = value;                NotifyOfPropertyChange(nameof(Type));            }        }        private bool _isCheck;        public bool IsCheck        {            get => _isCheck;            set            {                _isCheck = value;                NotifyOfPropertyChange(nameof(IsCheck));            }        }        private string _errorCommand;        public string ErrorCommand        {            get => _errorCommand;            set            {                _errorCommand = value;                NotifyOfPropertyChange(nameof(ErrorCommand));            }        }        public override string ToString()        {            List<string> rtnList = new List<string>();            rtnList.Add(Index.ToString());            rtnList.Add(InterLockName);            rtnList.Add(Type.ToString());            rtnList.Add(IsCheck.ToString());            rtnList.Add(ErrorCommand);            return string.Join(",", rtnList.ToArray());        }        public bool SetStringValue(string value)        {            if (string.IsNullOrEmpty(value)) return false;            if (!value.Contains(",") || value.Split(',').Length != 5) return false;            var strArray = value.Split(',');            Index = Convert.ToInt32(strArray[0]);            InterLockName = strArray[1];            Type = (CheckType)Enum.Parse(typeof(CheckType), strArray[2]);            IsCheck = bool.Parse(strArray[3]);            ErrorCommand = strArray[4];            return true;        }    }    public class AlarmConditionHardSoft : PropertyChangedBase    {        private int _index;        public int Index        {            get => _index;            set            {                _index = value;                NotifyOfPropertyChange(nameof(Index));            }        }        private string _interLockName;        public string InterLockName        {            get => _interLockName;            set            {                _interLockName = value;                NotifyOfPropertyChange(nameof(InterLockName));            }        }        private CheckType _type;        public CheckType Type        {            get => _type;            set            {                _type = value;                NotifyOfPropertyChange(nameof(Type));            }        }        private bool _isCheck;        public bool IsCheck        {            get => _isCheck;            set            {                _isCheck = value;                NotifyOfPropertyChange(nameof(IsCheck));            }        }        private string _errorCommand;        public string ErrorCommand        {            get => _errorCommand;            set            {                _errorCommand = value;                NotifyOfPropertyChange(nameof(ErrorCommand));            }        }        public override string ToString()        {            List<string> rtnList = new List<string>();            rtnList.Add(Index.ToString());            rtnList.Add(InterLockName);            rtnList.Add(Type.ToString());            rtnList.Add(IsCheck.ToString());            rtnList.Add(ErrorCommand);            return string.Join(",", rtnList.ToArray());        }        public bool SetStringValue(string value)        {            if (string.IsNullOrEmpty(value)) return false;            if (!value.Contains(",") || value.Split(',').Length != 5) return false;            var strArray = value.Split(',');            Index = Convert.ToInt32(strArray[0]);            InterLockName = strArray[1];            Type = (CheckType)Enum.Parse(typeof(CheckType), strArray[2]);            IsCheck = bool.Parse(strArray[3]);            ErrorCommand = strArray[4];            return true;        }    }    public class AlarmConditionValveILK : AlarmConditionHardSoft    {    }    public class AlarmConditionTempControler : AlarmConditionHardSoft    {    }    public class AlarmConditionAPCControler : AlarmConditionHardSoft    {    }    public class AlarmConditionTransferError : AlarmConditionHardSoft    {    }    public class AlarmConditionSerialLineDown : AlarmConditionDataBase    {        public override bool SetStringValue(string value)        {            if (string.IsNullOrEmpty(value)) return false;            if (!value.Contains(",") || value.Split(',').Length != 5) return false;            var strArray = value.Split(',');            Index = Convert.ToInt32(strArray[0]);            InterLockName = strArray[1];            Type = (CheckType)Enum.Parse(typeof(CheckType), strArray[2]);            IsCheck = bool.Parse(strArray[3]);            ErrorCommand = strArray[4];            return true;        }    }    public class AlarmConditionLanLineDown : AlarmConditionDataBase    {        public override bool SetStringValue(string value)        {            if (string.IsNullOrEmpty(value)) return false;            if (!value.Contains(",") || value.Split(',').Length != 5) return false;            var strArray = value.Split(',');            Index = Convert.ToInt32(strArray[0]);            InterLockName = strArray[1];            Type = (CheckType)Enum.Parse(typeof(CheckType), strArray[2]);            IsCheck = bool.Parse(strArray[3]);            ErrorCommand = strArray[4];            return true;        }    }    public class AlarmConditionDeviceNetLineDown : AlarmConditionDataBase    {        public override bool SetStringValue(string value)        {            if (string.IsNullOrEmpty(value)) return false;            if (!value.Contains(",") || value.Split(',').Length != 5) return false;            var strArray = value.Split(',');            Index = Convert.ToInt32(strArray[0]);            InterLockName = strArray[1];            Type = (CheckType)Enum.Parse(typeof(CheckType), strArray[2]);            IsCheck = bool.Parse(strArray[3]);            ErrorCommand = strArray[4];            return true;        }    }    public class AlarmConditionSensor : PropertyChangedBase    {        private int _index;        public int Index        {            get => _index;            set            {                _index = value;                NotifyOfPropertyChange(nameof(Index));            }        }        private string _sensorName;        public string SensorName        {            get => _sensorName;            set            {                _sensorName = value;                NotifyOfPropertyChange(nameof(SensorName));            }        }        private TempData _alertTempData;        public TempData AlertTempData        {            get => _alertTempData;            set            {                _alertTempData = value;                NotifyOfPropertyChange(nameof(AlertTempData));            }        }        private TempData _alarmTempData;        public TempData AlarmTempData        {            get => _alarmTempData;            set            {                _alarmTempData = value;                NotifyOfPropertyChange(nameof(AlarmTempData));            }        }        public override string ToString()        {            string[] strArray = new string[]                {                    Index.ToString(),                    SensorName,                    AlertTempData.ToString(),                    AlarmTempData.ToString()                };            return string.Join(";", strArray);        }        public bool SetStringValue(string value)        {            if (string.IsNullOrEmpty(value) || value.Split(';').Length != 4) return false;            var list = value.Split(';');            Index = Convert.ToInt32(list[0]);            SensorName = list[1];            AlertTempData.SetStringValue(list[2]);            AlarmTempData.SetStringValue(list[3]);            return true;        }    }    public class AlarmConditionOther : AlarmConditionDataBase    {        public override bool SetStringValue(string value)        {            if (string.IsNullOrEmpty(value)) return false;            if (!value.Contains(",") || value.Split(',').Length != 5) return false;            var strArray = value.Split(',');            Index = Convert.ToInt32(strArray[0]);            InterLockName = strArray[1];            Type = (CheckType)Enum.Parse(typeof(CheckType), strArray[2]);            IsCheck = bool.Parse(strArray[3]);            ErrorCommand = strArray[4];            return true;        }    }    public class TempData : PropertyChangedBase    {        private CheckType _type;        public CheckType Type        {            get => _type;            set            {                _type = value;                NotifyOfPropertyChange(nameof(Type));            }        }        private bool _isCheck;        public bool IsCheck        {            get => _isCheck;            set            {                _isCheck = value;                NotifyOfPropertyChange(nameof(IsCheck));            }        }        private DoubleParam _devHigh;        public DoubleParam DevHigh        {            get => _devHigh;            set            {                _devHigh = value;                NotifyOfPropertyChange(nameof(DevHigh));            }        }        private DoubleParam _devLow;        public DoubleParam DevLow        {            get => _devLow;            set            {                _devLow = value;                NotifyOfPropertyChange(nameof(DevLow));            }        }        private string _unit;        public string Unit        {            get => _unit;            set            {                _unit = value;                NotifyOfPropertyChange(nameof(Unit));            }        }        private DoubleParam _delayTime;        public DoubleParam DelayTime        {            get => _delayTime;            set            {                _delayTime = value;                NotifyOfPropertyChange(nameof(_delayTime));            }        }        private DoubleParam _time;        public DoubleParam Time        {            get => _time;            set            {                _time = value;                NotifyOfPropertyChange(nameof(Time));            }        }        private string _errorCommand;        public string ErrorCommand        {            get => _errorCommand;            set            {                _errorCommand = value;                NotifyOfPropertyChange(nameof(ErrorCommand));            }        }        public override string ToString()        {            string[] rtnString = new string[]                {                Type.ToString(),                IsCheck.ToString(),                DevHigh.Value,                DevLow.Value,                Unit,                Time.Value,                ErrorCommand,                DelayTime.Value,                };            return string.Join(",", rtnString);        }        public bool SetStringValue(string value)        {            if (string.IsNullOrEmpty(value)) return false;            string[] listStr = value.Split(',');            if (listStr.Length == 7 || listStr.Length == 8)            {                IsCheck = Convert.ToBoolean(listStr[1]);                DevHigh.Value = listStr[2];                DevLow.Value = listStr[3];                Unit = listStr[4];                float time = 0;                float.TryParse(listStr[5], out time);                Time.Value = time.ToString("f1");                ErrorCommand = listStr[6];                if (listStr.Length == 8)                {                    float delayTime = 0;                    float.TryParse(listStr[7], out delayTime);                    DelayTime.Value = delayTime.ToString("f1");                }            }            return true;        }    }    public enum CheckType    {        Alert,        Alarm    }}
 |