| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563 | using Aitex.Core.Common.DeviceData;using Aitex.Core.UI.ControlDataContext;using Aitex.Core.UI.MVVM;using Aitex.Core.Util;using FurnaceUI.Models;using MECF.Framework.Common.OperationCenter;using MECF.Framework.UI.Client.CenterViews.Editors.Recipe;using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using FurnaceUI.Views.Recipes;using System.Windows.Input;using System.Windows;using Aitex.Core.UI.DeviceControl;using OpenSEMI.ClientBase;using Aitex.Core.UI.Control;using MECF.Framework.UI.Core.Control;using MECF.Framework.UI.Core.ExtendedControls;namespace FurnaceUI.Views.Editors.TiN{    public class RecipeGasPanelSettingViewModel : FurnaceUIViewModelBase, IDisposable    {        public Window WinOwner { get; set; }        public bool IsCEXHOn { get; set; }        public string CEXHBrush        {            get            {                if (IsCEXHOn)                {                    return "Green";                }                return "#FFB0D1F1";            }        }        public bool IsF2ClnOn { get; set; }        public string F2ClnBrush        {            get            {                if (IsF2ClnOn)                {                    return "Green";                }                return "#FFB0D1F1";            }        }        public bool IsDEPOOn { get; set; }        public string DEPOBrush        {            get            {                if (IsDEPOOn)                {                    return "Green";                }                return "#FFB0D1F1";            }        }        //[Subscription("PM1.IsHFClnOn")]        public bool IsHFClnOn { get; set; }        public string HFClnBrush        {            get            {                if (IsHFClnOn)                {                    return "Green";                }                return "#FFB0D1F1";            }        }        [Subscription("PM1.ValveBlowerPowerOn.DeviceData")]        public AITValveData ValveBWR { get; set; }        public string ValveBWRBrush        {            get            {                if (ValveBWR != null && ValveBWR.VirtualFeedback)                {                    return "Green";                }                return "#FFB0D1F1";            }        }        //[Subscription("PM1.HTR1Enable")]        public bool IsHTR1Enable { get; set; }        public string HTR1Brush        {            get            {                if (IsHTR1Enable)                {                    return "Green";                }                return "#FFB0D1F1";            }        }        //[Subscription("PM1.HTR2Enable")]        public bool IsHTR2Enable { get; set; }        public string HTR2Brush        {            get            {                if (IsHTR2Enable)                {                    return "Green";                }                return "#FFB0D1F1";            }        }        public bool IsHTR3Enable { get; set; }        public string HTR3Brush        {            get            {                if (IsHTR3Enable)                {                    return "Green";                }                return "#FFB0D1F1";            }        }        [Subscription("PM1.ValveAV91.DeviceData")]        public AITValveData ValveDPR { get; set; }        public string ValveDPRBrush        {            get            {                if (ValveDPR != null && ValveDPR.VirtualFeedback)                {                    return "Green";                }                return "#FFB0D1F1";            }        }        [Subscription("PM1.AUCPump.DeviceData")]        public AITValveData AUCPump { get; set; }        public string AUCPumpBrush        {            get            {                if (AUCPump != null && AUCPump.VirtualFeedback)                {                    return "Green";                }                return "#FFB0D1F1";            }        }        [Subscription("PM1.BothPump.DeviceData")]        public AITValveData BothPump { get; set; }        public string BothPumpBrush        {            get            {                if (BothPump != null && BothPump.VirtualFeedback)                {                    return "Green";                }                return "#FFB0D1F1";            }        }        [Subscription("PM1.AGVPump.DeviceData")]        public AITValveData AGVPump { get; set; }        public string AGVPumpBrush        {            get            {                if (AGVPump != null && AGVPump.VirtualFeedback)                {                    return "Green";                }                return "#FFB0D1F1";            }        }        public bool IsEnable => CGlobal.RecipeProcessEditViewEnable;//是否是View模式        public bool _ismanagerPermission = true;        public bool IsManagerPermission        {            get            {                return _ismanagerPermission;            }            set            {                _ismanagerPermission = value;                NotifyOfPropertyChange("IsManagerPermission");            }        }        #region Valves        [Subscription("PM1.ValveAV1.DeviceData")] public AITValveData ValveAV1 { get; set; }        [Subscription("PM1.ValveAV2.DeviceData")] public AITValveData ValveAV2 { get; set; }        [Subscription("PM1.ValveAV3.DeviceData")] public AITValveData ValveAV3 { get; set; }        [Subscription("PM1.ValveAV4.DeviceData")] public AITValveData ValveAV4 { get; set; }        [Subscription("PM1.ValveAV5.DeviceData")] public AITValveData ValveAV5 { get; set; }        [Subscription("PM1.ValveAV6.DeviceData")] public AITValveData ValveAV6 { get; set; }        [Subscription("PM1.ValveAV7.DeviceData")] public AITValveData ValveAV7 { get; set; }        [Subscription("PM1.ValveAV8.DeviceData")] public AITValveData ValveAV8 { get; set; }        [Subscription("PM1.ValveAV9.DeviceData")] public AITValveData ValveAV9 { get; set; }        [Subscription("PM1.ValveAV10.DeviceData")] public AITValveData ValveAV10 { get; set; }        [Subscription("PM1.ValveAV11.DeviceData")] public AITValveData ValveAV11 { get; set; }        [Subscription("PM1.ValveAV12.DeviceData")] public AITValveData ValveAV12 { get; set; }        [Subscription("PM1.ValveAV13.DeviceData")] public AITValveData ValveAV13 { get; set; }        [Subscription("PM1.ValveAV14.DeviceData")] public AITValveData ValveAV14 { get; set; }        [Subscription("PM1.ValveAV15.DeviceData")] public AITValveData ValveAV15 { get; set; }        [Subscription("PM1.ValveAV16.DeviceData")] public AITValveData ValveAV16 { get; set; }        [Subscription("PM1.ValveAV17.DeviceData")] public AITValveData ValveAV17 { get; set; }        [Subscription("PM1.ValveAV18.DeviceData")] public AITValveData ValveAV18 { get; set; }        [Subscription("PM1.ValveAV19.DeviceData")] public AITValveData ValveAV19 { get; set; }        [Subscription("PM1.ValveAV20.DeviceData")] public AITValveData ValveAV20 { get; set; }        [Subscription("PM1.ValveAV21.DeviceData")] public AITValveData ValveAV21 { get; set; }        [Subscription("PM1.ValveAV22.DeviceData")] public AITValveData ValveAV22 { get; set; }        [Subscription("PM1.ValveAV23.DeviceData")] public AITValveData ValveAV23 { get; set; }        [Subscription("PM1.ValveAV24.DeviceData")] public AITValveData ValveAV24 { get; set; }        [Subscription("PM1.ValveAV25.DeviceData")] public AITValveData ValveAV25 { get; set; }        [Subscription("PM1.ValveAV26.DeviceData")] public AITValveData ValveAV26 { get; set; }        [Subscription("PM1.ValveAV27.DeviceData")] public AITValveData ValveAV27 { get; set; }        [Subscription("PM1.ValveAV28.DeviceData")] public AITValveData ValveAV28 { get; set; }        [Subscription("PM1.ValveAV29.DeviceData")] public AITValveData ValveAV29 { get; set; }        [Subscription("PM1.ValveAV30.DeviceData")] public AITValveData ValveAV30 { get; set; }        [Subscription("PM1.ValveAV31.DeviceData")] public AITValveData ValveAV31 { get; set; }        [Subscription("PM1.ValveAV32.DeviceData")] public AITValveData ValveAV32 { get; set; }        [Subscription("PM1.ValveAV33.DeviceData")] public AITValveData ValveAV33 { get; set; }        [Subscription("PM1.ValveAV34.DeviceData")] public AITValveData ValveAV34 { get; set; }        [Subscription("PM1.ValveAV35.DeviceData")] public AITValveData ValveAV35 { get; set; }        [Subscription("PM1.ValveAV36.DeviceData")] public AITValveData ValveAV36 { get; set; }        [Subscription("PM1.ValveAV37.DeviceData")] public AITValveData ValveAV37 { get; set; }        [Subscription("PM1.ValveAV38.DeviceData")] public AITValveData ValveAV38 { get; set; }        [Subscription("PM1.ValveAV39.DeviceData")] public AITValveData ValveAV39 { get; set; }        [Subscription("PM1.ValveAV40.DeviceData")] public AITValveData ValveAV40 { get; set; }        [Subscription("PM1.ValveAV41.DeviceData")] public AITValveData ValveAV41 { get; set; }        [Subscription("PM1.ValveAV42.DeviceData")] public AITValveData ValveAV42 { get; set; }        [Subscription("PM1.ValveAV43.DeviceData")] public AITValveData ValveAV43 { get; set; }        [Subscription("PM1.ValveAV44.DeviceData")] public AITValveData ValveAV44 { get; set; }        [Subscription("PM1.ValveAV45.DeviceData")] public AITValveData ValveAV45 { get; set; }        [Subscription("PM1.ValveAV46.DeviceData")] public AITValveData ValveAV46 { get; set; }        [Subscription("PM1.ValveAV47.DeviceData")] public AITValveData ValveAV47 { get; set; }        [Subscription("PM1.ValveAV48.DeviceData")] public AITValveData ValveAV48 { get; set; }        [Subscription("PM1.ValveAV49.DeviceData")] public AITValveData ValveAV49 { get; set; }        [Subscription("PM1.ValveAV50.DeviceData")] public AITValveData ValveAV50 { get; set; }        [Subscription("PM1.ValveAV51.DeviceData")] public AITValveData ValveAV51 { get; set; }        [Subscription("PM1.ValveAV52.DeviceData")] public AITValveData ValveAV52 { get; set; }        [Subscription("PM1.ValveAV53.DeviceData")] public AITValveData ValveAV53 { get; set; }        [Subscription("PM1.ValveAV54.DeviceData")] public AITValveData ValveAV54 { get; set; }        [Subscription("PM1.ValveAV55.DeviceData")] public AITValveData ValveAV55 { get; set; }        [Subscription("PM1.ValveAV56.DeviceData")] public AITValveData ValveAV56 { get; set; }        [Subscription("PM1.ValveAV57.DeviceData")] public AITValveData ValveAV57 { get; set; }        [Subscription("PM1.ValveAV58.DeviceData")] public AITValveData ValveAV58 { get; set; }        [Subscription("PM1.ValveAV59.DeviceData")] public AITValveData ValveAV59 { get; set; }        [Subscription("PM1.ValveAV60.DeviceData")] public AITValveData ValveAV60 { get; set; }        [Subscription("PM1.ValveAV61.DeviceData")] public AITValveData ValveAV61 { get; set; }        [Subscription("PM1.ValveAV62.DeviceData")] public AITValveData ValveAV62 { get; set; }        [Subscription("PM1.ValveAV65.DeviceData")] public AITValveData ValveAV65 { get; set; }        [Subscription("PM1.ValveAV66.DeviceData")] public AITValveData ValveAV66 { get; set; }        [Subscription("PM1.ValveAV67.DeviceData")] public AITValveData ValveAV67 { get; set; }        [Subscription("PM1.ValveAV68.DeviceData")] public AITValveData ValveAV68 { get; set; }        [Subscription("PM1.ValveAV69.DeviceData")] public AITValveData ValveAV69 { get; set; }        [Subscription("PM1.ValveAV70.DeviceData")] public AITValveData ValveAV70 { get; set; }        [Subscription("PM1.APC.ModeFeedback")]        public int APCModeFeedback { get; set; }        [Subscription("PM1.ValveAV71.DeviceData")] public AITValveData ValveAV71Data { get; set; }        public AITValveData ValveAV71        {            get            {                return new AITValveData()                {                    DeviceName = ValveAV71Data.DeviceName,                    DisplayName = ValveAV71Data.DisplayName,                    UniqueName = ValveAV71Data.UniqueName,                    DefaultValue = ValveAV71Data.DefaultValue,                    SetPoint = ValveAV71Data.SetPoint,                    Feedback = APCModeFeedback != 5,                    VirtualFeedback = ValveAV71Data.VirtualFeedback                };            }        }        [Subscription("PM1.ValveAV72.DeviceData")] public AITValveData ValveAV72 { get; set; }        [Subscription("PM1.ValveAV73.DeviceData")] public AITValveData ValveAV73 { get; set; }        [Subscription("PM1.ValveAV74.DeviceData")] public AITValveData ValveAV74 { get; set; }        [Subscription("PM1.ValveAV75.DeviceData")] public AITValveData ValveAV75 { get; set; }        [Subscription("PM1.ValveAV76.DeviceData")] public AITValveData ValveAV76 { get; set; }        [Subscription("PM1.ValveAV77.DeviceData")] public AITValveData ValveAV77 { get; set; }        [Subscription("PM1.ValveAV78.DeviceData")] public AITValveData ValveAV78 { get; set; }        [Subscription("PM1.ValveAV79.DeviceData")] public AITValveData ValveAV79 { get; set; }        [Subscription("PM1.ValveAV80.DeviceData")] public AITValveData ValveAV80 { get; set; }        [Subscription("PM1.ValveAV81.DeviceData")] public AITValveData ValveAV81 { get; set; }        [Subscription("PM1.ValveAV82.DeviceData")] public AITValveData ValveAV82 { get; set; }        [Subscription("PM1.ValveAV83.DeviceData")] public AITValveData ValveAV83 { get; set; }        [Subscription("PM1.ValveAV84.DeviceData")] public AITValveData ValveAV84 { get; set; }        [Subscription("PM1.ValveAV85.DeviceData")] public AITValveData ValveAV85 { get; set; }        [Subscription("PM1.ValveAV86.DeviceData")] public AITValveData ValveAV86 { get; set; }        [Subscription("PM1.ValveAV87.DeviceData")] public AITValveData ValveAV87 { get; set; }        [Subscription("PM1.ValveAV88.DeviceData")] public AITValveData ValveAV88 { get; set; }        [Subscription("PM1.ValveAV89.DeviceData")] public AITValveData ValveAV89 { get; set; }        [Subscription("PM1.ValveAV90.DeviceData")] public AITValveData ValveAV90 { get; set; }        [Subscription("PM1.ValveAV91.DeviceData")] public AITValveData ValveAV91 { get; set; }        [Subscription("PM1.ValveAV92.DeviceData")] public AITValveData ValveAV92 { get; set; }        [Subscription("PM1.ValveAV93.DeviceData")] public AITValveData ValveAV93 { get; set; }        [Subscription("PM1.ValveAV94.DeviceData")] public AITValveData ValveAV94 { get; set; }        [Subscription("PM1.ValveAV95.DeviceData")] public AITValveData ValveAV95 { get; set; }        [Subscription("PM1.ValveAV96.DeviceData")] public AITValveData ValveAV96 { get; set; }        [Subscription("PM1.ValveAV97.DeviceData")] public AITValveData ValveAV97 { get; set; }        [Subscription("PM1.ValveAV98.DeviceData")] public AITValveData ValveAV98 { get; set; }        [Subscription("PM1.ValveAV99.DeviceData")] public AITValveData ValveAV99 { get; set; }        [Subscription("PM1.ValveAV100.DeviceData")] public AITValveData ValveAV100 { get; set; }        [Subscription("PM1.ValveAV101.DeviceData")] public AITValveData ValveAV101 { get; set; }        [Subscription("PM1.ValveAV102.DeviceData")] public AITValveData ValveAV102 { get; set; }        [Subscription("PM1.ValveAV103.DeviceData")] public AITValveData ValveAV103 { get; set; }        [Subscription("PM1.ValveAV104.DeviceData")] public AITValveData ValveAV104 { get; set; }        [Subscription("PM1.ValveAV105.DeviceData")] public AITValveData ValveAV105 { get; set; }        [Subscription("PM1.ValveAV106.DeviceData")] public AITValveData ValveAV106 { get; set; }        [Subscription("PM1.ValveAV107.DeviceData")] public AITValveData ValveAV107 { get; set; }        [Subscription("PM1.ValveAV108.DeviceData")] public AITValveData ValveAV108 { get; set; }        [Subscription("PM1.ValveAV109.DeviceData")] public AITValveData ValveAV109 { get; set; }        [Subscription("PM1.ValveAV110.DeviceData")] public AITValveData ValveAV110 { get; set; }        [Subscription("PM1.ValveAV111.DeviceData")] public AITValveData ValveAV111 { get; set; }        [Subscription("PM1.ValveAV112.DeviceData")] public AITValveData ValveAV112 { get; set; }        [Subscription("PM1.ValveAV113.DeviceData")] public AITValveData ValveAV113 { get; set; }        [Subscription("PM1.ValveAV114.DeviceData")] public AITValveData ValveAV114 { get; set; }        [Subscription("PM1.ValveAV115.DeviceData")] public AITValveData ValveAV115 { get; set; }        [Subscription("PM1.ValveAV116.DeviceData")] public AITValveData ValveAV116 { get; set; }        [Subscription("PM1.ValveAV117.DeviceData")] public AITValveData ValveAV117 { get; set; }        [Subscription("PM1.ValveAV118.DeviceData")] public AITValveData ValveAV118 { get; set; }        [Subscription("PM1.ValveAV119.DeviceData")] public AITValveData ValveAV119 { get; set; }        [Subscription("PM1.ValveAV120.DeviceData")] public AITValveData ValveAV120 { get; set; }        [Subscription("PM1.ValveAV121.DeviceData")] public AITValveData ValveAV121 { get; set; }        [Subscription("PM1.ValveAV122.DeviceData")] public AITValveData ValveAV122 { get; set; }        [Subscription("PM1.ValveAV123.DeviceData")] public AITValveData ValveAV123 { get; set; }        [Subscription("PM1.ValveAV124.DeviceData")] public AITValveData ValveAV124 { get; set; }        [Subscription("PM1.ValveAV125.DeviceData")] public AITValveData ValveAV125 { get; set; }        [Subscription("PM1.ValveAV126.DeviceData")] public AITValveData ValveAV126 { get; set; }        [Subscription("PM1.ValveAV127.DeviceData")] public AITValveData ValveAV127 { get; set; }        [Subscription("PM1.ValveAV128.DeviceData")] public AITValveData ValveAV128 { get; set; }        [Subscription("PM1.ValveAV129.DeviceData")] public AITValveData ValveAV129 { get; set; }        [Subscription("PM1.ValveAV130.DeviceData")] public AITValveData ValveAV130 { get; set; }        [Subscription("PM1.ValveAV131.DeviceData")] public AITValveData ValveAV131 { get; set; }        [Subscription("PM1.ValveAV132.DeviceData")] public AITValveData ValveAV132 { get; set; }        [Subscription("PM1.ValveAV133.DeviceData")] public AITValveData ValveAV133 { get; set; }        [Subscription("PM1.ValveAV134.DeviceData")] public AITValveData ValveAV134 { get; set; }        [Subscription("PM1.ValveAV135.DeviceData")] public AITValveData ValveAV135 { get; set; }        [Subscription("PM1.ValveAV136.DeviceData")] public AITValveData ValveAV136 { get; set; }        #endregion        [Subscription("PM1.SensorPureN2PressureOK.DeviceData")]        public AITSensorData SensorPureN2PressureOK { get; set; }        [Subscription("PM1.SensorNH3PressureOK.DeviceData")]        public AITSensorData SensorNH3PressureOK { get; set; }        [Subscription("PM1.SensorSiH2CL2PressureOK.DeviceData")]        public AITSensorData SensorSiH2CL2PressureOK { get; set; }        [Subscription("PM1.SensorN2OPressureOK.DeviceData")]        public AITSensorData SensorN2OPressureOK { get; set; }        [Subscription("PM1.SensorPSW1LOW.DeviceData")]        public AITSensorData SensorPSW1LOW { get; set; }        [Subscription("PM1.SensorPSW2LOW.DeviceData")]        public AITSensorData SensorPSW2LOW { get; set; }        [Subscription("PM1.SensorGUExhaustOK.DeviceData")]        public AITSensorData SensorGUExhaustOK { get; set; }        [Subscription("PM1.SensorVAC1.Value")]        public bool VAC1 { get; set; }        [Subscription("PM1.SensorVAC2.Value")]        public bool VAC2 { get; set; }        [Subscription("PM1.SensorVAC3.Value")]        public bool VAC3 { get; set; }        [Subscription("PM1.SensorVAC4.Value")]        public bool VAC4 { get; set; }        [Subscription("PM1.SensorVAC5.Value")]        public bool VAC5 { get; set; }        [Subscription("PM1.SensorVAC6.Value")]        public bool VAC6 { get; set; }        [Subscription("PM1.SensorVACATM.Value")]        public bool VACATM { get; set; }        [Subscription("PM1.SensorVACDEPOOK.Value")]        public bool DEPOOK { get; set; }        [Subscription("PM1.SensorVACHFOK.Value")]        public bool HFClnOK { get; set; }        [Subscription("PM1.SensorVACF2OK.Value")]        public bool F2ClnOK { get; set; }        #region MFCs        [Subscription("PM1.MFC1.DeviceData")]        public AITMfcData MFC1Data { get; set; }        [Subscription("PM1.MFC2.DeviceData")]        public AITMfcData MFC2Data { get; set; }        [Subscription("PM1.MFC3.DeviceData")]        public AITMfcData MFC3Data { get; set; }        [Subscription("PM1.MFC4.DeviceData")]        public AITMfcData MFC4Data { get; set; }        [Subscription("PM1.MFC5.DeviceData")]        public AITMfcData MFC5Data { get; set; }        [Subscription("PM1.MFC6.DeviceData")]        public AITMfcData MFC6Data { get; set; }        [Subscription("PM1.MFC7.DeviceData")]        public AITMfcData MFC7Data { get; set; }        [Subscription("PM1.MFC8.DeviceData")]        public AITMfcData MFC8Data { get; set; }        [Subscription("PM1.MFC9.DeviceData")]        public AITMfcData MFC9Data { get; set; }        [Subscription("PM1.MFC10.DeviceData")]        public AITMfcData MFC10Data { get; set; }        [Subscription("PM1.MFC11.DeviceData")]        public AITMfcData MFC11Data { get; set; }        [Subscription("PM1.MFC12.DeviceData")]        public AITMfcData MFC12Data { get; set; }        [Subscription("PM1.MFC13.DeviceData")]        public AITMfcData MFC13Data { get; set; }        [Subscription("PM1.MFC16.DeviceData")]        public AITMfcData MFC16Data { get; set; }        [Subscription("PM1.MFC17.DeviceData")]        public AITMfcData MFC17Data { get; set; }        [Subscription("PM1.MFC31.DeviceData")]        public AITMfcData MFC31Data { get; set; }        [Subscription("PM1.MFC32.DeviceData")]        public AITMfcData MFC32Data { get; set; }        [Subscription("PM1.MFM6.DeviceData")]        public AITWaterFlowMeterData MFM6FlowData { get; set; }        [Subscription("PM1.MFM7.DeviceData")]        public AITWaterFlowMeterData MFM7FlowData { get; set; }        [Subscription("PM1.MFM8.DeviceData")]        public AITWaterFlowMeterData MFM8FlowData { get; set; }        [Subscription("PM1.MFM9.DeviceData")]        public AITWaterFlowMeterData MFM9FlowData { get; set; }        [Subscription("PM1.MFM11.DeviceData")]        public AITWaterFlowMeterData MFM11FlowData { get; set; }        [Subscription("PM1.MFM12.DeviceData")]        public AITWaterFlowMeterData MFM12FlowData { get; set; }        [Subscription("PM1.MFM13.DeviceData")]        public AITWaterFlowMeterData MFM13FlowData { get; set; }        [Subscription("PM1.MFM16.DeviceData")]        public AITWaterFlowMeterData MFM16FlowData { get; set; }        #endregion        public ICommand CmdSetValve { get; set; }        public ICommand CmdSetMfcFlow { get; set; }        public ICommand CmdSetMfmFlow { get; set; }        public int SelectedStepNo { get; set; }        private string _selectedStepName;        public string SelectedStepName        {            get            {                return _selectedStepName;            }            set            {                _selectedStepName = value;                NotifyOfPropertyChange("SelectedStepName");            }        }        private Step _step;        public Step SelectedStep        {            get => _step;            set            {                _step = value;                NotifyOfPropertyChange("SelectedStep");            }        }        public RecipeDataBase CurrentRecipe { get; set; }        #region"MFC"        private AnalogDeviceDataItem _mfc1;        public AnalogDeviceDataItem MFC1        {            get => _mfc1;            set            {                _mfc1 = value;                NotifyOfPropertyChange("MFC1");            }        }        private AnalogDeviceDataItem _mfc2;        public AnalogDeviceDataItem MFC2        {            get => _mfc2;            set            {                _mfc2 = value;                NotifyOfPropertyChange("MFC2");            }        }        private AnalogDeviceDataItem _mfc3;        public AnalogDeviceDataItem MFC3        {            get => _mfc3;            set            {                _mfc3 = value;                NotifyOfPropertyChange("MFC3");            }        }        private AnalogDeviceDataItem _mfc4;        public AnalogDeviceDataItem MFC4        {            get => _mfc4;            set            {                _mfc4 = value;                NotifyOfPropertyChange("MFC4");            }        }        private AnalogDeviceDataItem _mfc5;        public AnalogDeviceDataItem MFC5        {            get => _mfc5;            set            {                _mfc5 = value;                NotifyOfPropertyChange("MFC5");            }        }        private AnalogDeviceDataItem _mfc6;        public AnalogDeviceDataItem MFC6        {            get => _mfc6;            set            {                _mfc6 = value;                NotifyOfPropertyChange("MFC6");            }        }        private AnalogDeviceDataItem _mfc7;        public AnalogDeviceDataItem MFC7        {            get => _mfc7;            set            {                _mfc7 = value;                NotifyOfPropertyChange("MFC7");            }        }        private AnalogDeviceDataItem _mfc8;        public AnalogDeviceDataItem MFC8        {            get => _mfc8;            set            {                _mfc8 = value;                NotifyOfPropertyChange("MFC8");            }        }        private AnalogDeviceDataItem _mfc9;        public AnalogDeviceDataItem MFC9        {            get => _mfc9;            set            {                _mfc9 = value;                NotifyOfPropertyChange("MFC9");            }        }        private AnalogDeviceDataItem _mfc10;        public AnalogDeviceDataItem MFC10        {            get => _mfc10;            set            {                _mfc10 = value;                NotifyOfPropertyChange("MFC10");            }        }        private AnalogDeviceDataItem _mfc11;        public AnalogDeviceDataItem MFC11        {            get => _mfc11;            set            {                _mfc11 = value;                NotifyOfPropertyChange("MFC11");            }        }        private AnalogDeviceDataItem _mfc12;        public AnalogDeviceDataItem MFC12        {            get => _mfc12;            set            {                _mfc12 = value;                NotifyOfPropertyChange("MFC12");            }        }        private AnalogDeviceDataItem _mfc13;        public AnalogDeviceDataItem MFC13        {            get => _mfc13;            set            {                _mfc13 = value;                NotifyOfPropertyChange("MFC13");            }        }        private AnalogDeviceDataItem _mfc16;        public AnalogDeviceDataItem MFC16        {            get => _mfc16;            set            {                _mfc16 = value;                NotifyOfPropertyChange("MFC16");            }        }        private AnalogDeviceDataItem _mfc17;        public AnalogDeviceDataItem MFC17        {            get => _mfc17;            set            {                _mfc17 = value;                NotifyOfPropertyChange("MFC17");            }        }        private AnalogDeviceDataItem _mfc31;        public AnalogDeviceDataItem MFC31        {            get => _mfc31;            set            {                _mfc31 = value;                NotifyOfPropertyChange("MFC31");            }        }        private AnalogDeviceDataItem _mfc32;        public AnalogDeviceDataItem MFC32        {            get => _mfc32;            set            {                _mfc32 = value;                NotifyOfPropertyChange("MFC32");            }        }        #endregion        private AnalogDeviceDataItem _mfm6Flow;        public AnalogDeviceDataItem Mfm6Flow        {            get => _mfm6Flow;            set            {                _mfm6Flow = value;                NotifyOfPropertyChange("Mfm6Flow");            }        }        private AnalogDeviceDataItem _mfm7Flow;        public AnalogDeviceDataItem Mfm7Flow        {            get => _mfm7Flow;            set            {                _mfm7Flow = value;                NotifyOfPropertyChange("Mfm7Flow");            }        }        private AnalogDeviceDataItem _mfm8Flow;        public AnalogDeviceDataItem Mfm8Flow        {            get => _mfm8Flow;            set            {                _mfm8Flow = value;                NotifyOfPropertyChange("Mfm8Flow");            }        }        private AnalogDeviceDataItem _mfm9Flow;        public AnalogDeviceDataItem Mfm9Flow        {            get => _mfm9Flow;            set            {                _mfm9Flow = value;                NotifyOfPropertyChange("Mfm9Flow");            }        }        private AnalogDeviceDataItem _mfm11Flow;        public AnalogDeviceDataItem Mfm11Flow        {            get => _mfm11Flow;            set            {                _mfm11Flow = value;                NotifyOfPropertyChange("Mfm11Flow");            }        }        private AnalogDeviceDataItem _mfm12Flow;        public AnalogDeviceDataItem Mfm12Flow        {            get => _mfm12Flow;            set            {                _mfm12Flow = value;                NotifyOfPropertyChange("Mfm12Flow");            }        }        private AnalogDeviceDataItem _mfm13Flow;        public AnalogDeviceDataItem Mfm13Flow        {            get => _mfm13Flow;            set            {                _mfm13Flow = value;                NotifyOfPropertyChange("Mfm13Flow");            }        }        private AnalogDeviceDataItem _mfm16Flow;        public AnalogDeviceDataItem Mfm16Flow        {            get => _mfm16Flow;            set            {                _mfm16Flow = value;                NotifyOfPropertyChange("Mfm16Flow");            }        }        public delegate void ChangedStepHandler(Step step);        public event ChangedStepHandler ChangedStepEvent;        private bool _isUsePREVBtn = false;        public bool IsUsePREVBtn        {            get => _isUsePREVBtn;            set            {                _isUsePREVBtn = value;                NotifyOfPropertyChange("IsUsePREVBtn");            }        }        private bool _isUseNEXTBtn = false;        public bool IsUseNEXTBtn        {            get => _isUseNEXTBtn;            set            {                _isUseNEXTBtn = value;                NotifyOfPropertyChange("IsUseNEXTBtn");            }        }        private GasPanelStateType _selectedGasStateType = GasPanelStateType.Monitor;        public GasPanelStateType SelectedGasStateType        {            get            {                return _selectedGasStateType;            }            set            {                _selectedGasStateType = value;                NotifyOfPropertyChange(nameof(SelectedGasStateType));            }        }        private void SetPREVAndNEXTBtn()        {            if (SelectedStep != null && CurrentRecipe != null)            {                if (CurrentRecipe.Steps.Count == 0)                {                    IsUsePREVBtn = false;                    IsUseNEXTBtn = false;                }                else                {                    if (SelectedStep.StepNo > CurrentRecipe.Steps[0].StepNo)                    {                        IsUsePREVBtn = true;                    }                    else                    {                        IsUsePREVBtn = false;                    }                    if (SelectedStep.StepNo < CurrentRecipe.Steps[CurrentRecipe.Steps.Count - 1].StepNo)                    {                        IsUseNEXTBtn = true;                    }                    else                    {                        IsUseNEXTBtn = false;                    }                }            }        }        public void SetChangedStep(Step step)        {            if (ChangedStepEvent != null)            {                ChangedStepEvent(step);            }        }        protected override void OnViewLoaded(object view)        {            base.OnViewLoaded(view);            IsManagerPermission = true;            SetValveVirtualFeedbackValue();            // CreateAITValveDataDefault();            CreateMfcDefault();            CreateMfmDefault();            SetPREVAndNEXTBtn();            CmdSetValve = new DelegateCommand<object>(SetValveCommand);            CmdSetMfcFlow = new DelegateCommand<object>(PerformCmdSetMfcFlow);            CmdSetMfmFlow = new DelegateCommand<object>(PerformCmdSetMfmFlow);            SelectedGasStateType = GasPanelStateType.Recipe;            ((RecipeGasPanelSettingView)view).RdoRecipe.IsChecked = true;        }        public void SetValveCommand(object param)        {            object[] args = (object[])param;            if (args.Length == 3)                if (SelectedStep.ValveSets.FirstOrDefault(x => x.Name == (string)args[0]) != null)                {                    SelectedStep.ValveSets.FirstOrDefault(x => x.Name == (string)args[0]).Value = (bool)args[2];                    InvokeClient.Instance.Service.DoOperation($"{args[0]}.{args[1]}", args[2]);                }        }        public void SelectedGasStateTypeCmd(string cmd)        {            switch (cmd)            {                case "Manual":                    SelectedGasStateType = GasPanelStateType.Manual;                    break;                case "Monitor":                    SelectedGasStateType = GasPanelStateType.Monitor;                    break;                case "Recipe":                    SelectedGasStateType = GasPanelStateType.Recipe;                    break;                default:                    break;            }        }        private void PerformCmdSetMfcFlow(object param)        {            object[] args = (object[])param; //0:devicename, 1:operation, 2:args            if (args.Length == 3)            {                InvokeClient.Instance.Service.DoOperation($"{args[0]}.{args[1]}", args[2]);            }        }        private void PerformCmdSetMfmFlow(object param)        {            object[] args = (object[])param; //0:devicename, 1:operation, 2:args            if (args.Length == 3)            {                InvokeClient.Instance.Service.DoOperation($"PM1.{args[0]}.{args[1]}", args[2]);            }        }        public AnalogDeviceDataItem AITMfcDataToAnalogDeviceDataItem(AITMfcData aITMfcData)        {            string mfcStrValue = "0.00";           var mfcData= SelectedStep.MFCSets?.FirstOrDefault(x => x.ControlName == aITMfcData.DeviceName);            if (mfcData!=null)            {                mfcStrValue = mfcData.SetValue.Value;            }            else            {                Console.WriteLine(aITMfcData.DeviceName);            }            return new AnalogDeviceDataItem            {                Type = aITMfcData.Type,                DeviceName = aITMfcData.UniqueName,                DeviceId = aITMfcData.DeviceSchematicId,                DisplayName = aITMfcData.DisplayName,                Scale = aITMfcData.Scale,                Unit = aITMfcData.Unit,                FeedBack = double.Parse(mfcStrValue),                SetPoint = double.Parse(mfcStrValue),                VirtualFeedBack = double.Parse(mfcStrValue),            };        }        public AnalogDeviceDataItem AITMfMDataToAnalogDeviceDataItem(AITWaterFlowMeterData mfmData)        {            return new AnalogDeviceDataItem()            {                Type         = mfmData.Type,                Unit         = mfmData.Unit,                DeviceId     = mfmData.DeviceSchematicId,                DefaultValue = mfmData.DefaultValue,                Description  = mfmData.Description,                DeviceName   = mfmData.DeviceName,                DisplayName  = mfmData.DisplayName,                ErroMessage  = mfmData.ErroMessage,                Factor       = mfmData.Factor,                FeedBack     = mfmData.FeedBack,                Scale        = mfmData.Scale,                SetPoint     = mfmData.SetPoint,                IsWarning    = mfmData.IsWarning,                FormatString = "F2"            };        }        public AnalogDeviceDataItem UpdateAITMfcDataToAnalogDeviceDataItem(AITMfcData aITMfcData)        {            var strtemp = $"{aITMfcData.DeviceName}.Flow";            string mfcStrValue = "0.00";            return new AnalogDeviceDataItem            {                Type = aITMfcData.Type,                DeviceName = aITMfcData.UniqueName,                DeviceId = aITMfcData.DeviceSchematicId,                DisplayName = aITMfcData.DisplayName,                Scale = aITMfcData.Scale,                Unit = aITMfcData.Unit,                FeedBack = SelectedGasStateType == GasPanelStateType.Monitor ? aITMfcData.FeedBack : aITMfcData.SetPoint,                SetPoint = double.Parse(mfcStrValue),                VirtualFeedBack = aITMfcData.VirtualFeedBack,            };        }        public void CreateMfcDefault()        {            MFC1 = AITMfcDataToAnalogDeviceDataItem(MFC1Data);            MFC2 = AITMfcDataToAnalogDeviceDataItem(MFC2Data);            MFC3 = AITMfcDataToAnalogDeviceDataItem(MFC3Data);            MFC4 = AITMfcDataToAnalogDeviceDataItem(MFC4Data);            MFC5 = AITMfcDataToAnalogDeviceDataItem(MFC5Data);            MFC6 = AITMfcDataToAnalogDeviceDataItem(MFC6Data);            MFC7 = AITMfcDataToAnalogDeviceDataItem(MFC7Data);            MFC8 = AITMfcDataToAnalogDeviceDataItem(MFC8Data);            MFC9 = AITMfcDataToAnalogDeviceDataItem(MFC9Data);            MFC10 = AITMfcDataToAnalogDeviceDataItem(MFC10Data);            MFC11 = AITMfcDataToAnalogDeviceDataItem(MFC11Data);            MFC12 = AITMfcDataToAnalogDeviceDataItem(MFC12Data);            MFC13 = AITMfcDataToAnalogDeviceDataItem(MFC13Data);            MFC16 = AITMfcDataToAnalogDeviceDataItem(MFC16Data);            MFC17 = AITMfcDataToAnalogDeviceDataItem(MFC17Data);            MFC31 = AITMfcDataToAnalogDeviceDataItem(MFC31Data);            MFC32 = AITMfcDataToAnalogDeviceDataItem(MFC32Data);        }        public void CreateMfmDefault()        {            Mfm6Flow = AITMfMDataToAnalogDeviceDataItem(MFM6FlowData);            Mfm7Flow = AITMfMDataToAnalogDeviceDataItem(MFM7FlowData);            Mfm8Flow = AITMfMDataToAnalogDeviceDataItem(MFM8FlowData);            Mfm9Flow = AITMfMDataToAnalogDeviceDataItem(MFM9FlowData);            Mfm11Flow = AITMfMDataToAnalogDeviceDataItem(MFM11FlowData);            Mfm12Flow = AITMfMDataToAnalogDeviceDataItem(MFM12FlowData);            Mfm13Flow = AITMfMDataToAnalogDeviceDataItem(MFM13FlowData);            Mfm16Flow = AITMfMDataToAnalogDeviceDataItem(MFM16FlowData);        }        public void SetValveVirtualFeedbackValue()        {            //if (ValveAV1 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV1.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV1.DeviceName.Trim()] == "Open"); }            //if (ValveAV2 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV2.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV2.DeviceName.Trim()] == "Open"); }            //if (ValveAV3 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV3.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV3.DeviceName.Trim()] == "Open"); }            //if (ValveAV4 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV4.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV4.DeviceName.Trim()] == "Open"); }            //if (ValveAV5 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV5.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV5.DeviceName.Trim()] == "Open"); }            //if (ValveAV6 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV6.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV6.DeviceName.Trim()] == "Open"); }            //if (ValveAV7 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV7.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV7.DeviceName.Trim()] == "Open"); }            //if (ValveAV8 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV8.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV8.DeviceName.Trim()] == "Open"); }            //if (ValveAV9 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV9.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV9.DeviceName.Trim()] == "Open"); }            //if (ValveAV10 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV10.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV10.DeviceName.Trim()] == "Open"); }            //if (ValveAV11 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV11.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV11.DeviceName.Trim()] == "Open"); }            //if (ValveAV12 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV12.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV12.DeviceName.Trim()] == "Open"); }            //if (ValveAV13 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV13.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV13.DeviceName.Trim()] == "Open"); }            //if (ValveAV14 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV14.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV14.DeviceName.Trim()] == "Open"); }            //if (ValveAV15 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV15.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV15.DeviceName.Trim()] == "Open"); }            //if (ValveAV16 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV16.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV16.DeviceName.Trim()] == "Open"); }            //if (ValveAV17 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV17.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV17.DeviceName.Trim()] == "Open"); }            //if (ValveAV18 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV18.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV18.DeviceName.Trim()] == "Open"); }            //if (ValveAV19 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV19.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV19.DeviceName.Trim()] == "Open"); }            //if (ValveAV20 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV20.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV20.DeviceName.Trim()] == "Open"); }            //if (ValveAV21 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV21.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV21.DeviceName.Trim()] == "Open"); }            //if (ValveAV22 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV22.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV22.DeviceName.Trim()] == "Open"); }            //if (ValveAV23 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV23.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV23.DeviceName.Trim()] == "Open"); }            //if (ValveAV24 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV24.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV24.DeviceName.Trim()] == "Open"); }            //if (ValveAV25 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV25.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV25.DeviceName.Trim()] == "Open"); }            //if (ValveAV26 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV26.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV26.DeviceName.Trim()] == "Open"); }            //if (ValveAV27 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV27.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV27.DeviceName.Trim()] == "Open"); }            //if (ValveAV28 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV28.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV28.DeviceName.Trim()] == "Open"); }            //if (ValveAV29 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV29.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV29.DeviceName.Trim()] == "Open"); }            //if (ValveAV30 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV30.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV30.DeviceName.Trim()] == "Open"); }            //if (ValveAV31 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV31.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV31.DeviceName.Trim()] == "Open"); }            //if (ValveAV32 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV32.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV32.DeviceName.Trim()] == "Open"); }            //if (ValveAV33 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV33.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV33.DeviceName.Trim()] == "Open"); }            //if (ValveAV34 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV34.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV34.DeviceName.Trim()] == "Open"); }            //if (ValveAV35 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV35.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV35.DeviceName.Trim()] == "Open"); }            //if (ValveAV36 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV36.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV36.DeviceName.Trim()] == "Open"); }            //if (ValveAV37 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV37.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV37.DeviceName.Trim()] == "Open"); }            //if (ValveAV38 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV38.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV38.DeviceName.Trim()] == "Open"); }            //if (ValveAV39 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV39.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV39.DeviceName.Trim()] == "Open"); }            //if (ValveAV40 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV40.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV40.DeviceName.Trim()] == "Open"); }            //if (ValveAV41 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV41.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV41.DeviceName.Trim()] == "Open"); }            //if (ValveAV42 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV42.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV42.DeviceName.Trim()] == "Open"); }            //if (ValveAV43 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV43.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV43.DeviceName.Trim()] == "Open"); }            //if (ValveAV44 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV44.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV44.DeviceName.Trim()] == "Open"); }            //if (ValveAV45 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV45.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV45.DeviceName.Trim()] == "Open"); }            //if (ValveAV46 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV46.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV46.DeviceName.Trim()] == "Open"); }            //if (ValveAV47 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV47.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV47.DeviceName.Trim()] == "Open"); }            //if (ValveAV48 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV48.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV48.DeviceName.Trim()] == "Open"); }            //if (ValveAV49 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV49.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV49.DeviceName.Trim()] == "Open"); }            //if (ValveAV50 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV50.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV50.DeviceName.Trim()] == "Open"); }            //if (ValveAV51 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV51.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV51.DeviceName.Trim()] == "Open"); }            //if (ValveAV52 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV52.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV52.DeviceName.Trim()] == "Open"); }            //if (ValveAV53 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV53.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV53.DeviceName.Trim()] == "Open"); }            //if (ValveAV54 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV54.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV54.DeviceName.Trim()] == "Open"); }            //if (ValveAV55 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV55.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV55.DeviceName.Trim()] == "Open"); }            //if (ValveAV56 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV56.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV56.DeviceName.Trim()] == "Open"); }            //if (ValveAV57 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV57.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV57.DeviceName.Trim()] == "Open"); }            //if (ValveAV58 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV58.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV58.DeviceName.Trim()] == "Open"); }            //if (ValveAV59 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV59.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV59.DeviceName.Trim()] == "Open"); }            //if (ValveAV60 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV60.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV60.DeviceName.Trim()] == "Open"); }            //if (ValveAV61 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV61.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV61.DeviceName.Trim()] == "Open"); }            //if (ValveAV62 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV62.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV62.DeviceName.Trim()] == "Open"); }            //if (ValveAV65 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV65.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV65.DeviceName.Trim()] == "Open"); }            //if (ValveAV66 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV66.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV66.DeviceName.Trim()] == "Open"); }            //if (ValveAV67 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV67.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV67.DeviceName.Trim()] == "Open"); }            //if (ValveAV68 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV68.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV68.DeviceName.Trim()] == "Open"); }            //if (ValveAV69 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV69.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV69.DeviceName.Trim()] == "Open"); }            //if (ValveAV70 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV70.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV70.DeviceName.Trim()] == "Open"); }            //if (ValveAV71 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV71.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV71.DeviceName.Trim()] == "Open"); }            //if (ValveAV72 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV72.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV72.DeviceName.Trim()] == "Open"); }            //if (ValveAV73 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV73.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV73.DeviceName.Trim()] == "Open"); }            //if (ValveAV74 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV74.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV74.DeviceName.Trim()] == "Open"); }            //if (ValveAV75 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV75.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV75.DeviceName.Trim()] == "Open"); }            //if (ValveAV76 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV76.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV76.DeviceName.Trim()] == "Open"); }            //if (ValveAV77 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV77.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV77.DeviceName.Trim()] == "Open"); }            //if (ValveAV78 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV78.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV78.DeviceName.Trim()] == "Open"); }            //if (ValveAV79 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV79.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV79.DeviceName.Trim()] == "Open"); }            //if (ValveAV80 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV80.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV80.DeviceName.Trim()] == "Open"); }            //if (ValveAV81 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV81.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV81.DeviceName.Trim()] == "Open"); }            //if (ValveAV82 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV82.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV82.DeviceName.Trim()] == "Open"); }            //if (ValveAV83 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV83.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV83.DeviceName.Trim()] == "Open"); }            //if (ValveAV84 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV84.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV84.DeviceName.Trim()] == "Open"); }            //if (ValveAV85 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV85.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV85.DeviceName.Trim()] == "Open"); }            //if (ValveAV86 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV86.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV86.DeviceName.Trim()] == "Open"); }            //if (ValveAV87 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV87.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV87.DeviceName.Trim()] == "Open"); }            //if (ValveAV88 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV88.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV88.DeviceName.Trim()] == "Open"); }            //if (ValveAV89 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV89.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV89.DeviceName.Trim()] == "Open"); }            //if (ValveAV90 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV90.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV90.DeviceName.Trim()] == "Open"); }            //if (ValveAV91 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV91.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV91.DeviceName.Trim()] == "Open"); }            //if (ValveAV92 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV92.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV92.DeviceName.Trim()] == "Open"); }            //if (ValveAV93 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV93.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV93.DeviceName.Trim()] == "Open"); }            //if (ValveAV94 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV94.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV94.DeviceName.Trim()] == "Open"); }            //if (ValveAV95 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV95.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV95.DeviceName.Trim()] == "Open"); }            //if (ValveAV96 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV96.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV96.DeviceName.Trim()] == "Open"); }            //if (ValveAV97 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV97.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV97.DeviceName.Trim()] == "Open"); }            //if (ValveAV98 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV98.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV98.DeviceName.Trim()] == "Open"); }            //if (ValveAV99 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV99.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV99.DeviceName.Trim()] == "Open"); }            //if (ValveAV100 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV100.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV100.DeviceName.Trim()] == "Open"); }            //if (ValveAV101 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV101.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV101.DeviceName.Trim()] == "Open"); }            //if (ValveAV102 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV102.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV102.DeviceName.Trim()] == "Open"); }            //if (ValveAV103 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV103.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV103.DeviceName.Trim()] == "Open"); }            //if (ValveAV104 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV104.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV104.DeviceName.Trim()] == "Open"); }            //if (ValveAV105 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV105.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV105.DeviceName.Trim()] == "Open"); }            //if (ValveAV106 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV106.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV106.DeviceName.Trim()] == "Open"); }            //if (ValveAV107 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV107.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV107.DeviceName.Trim()] == "Open"); }            //if (ValveAV108 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV108.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV108.DeviceName.Trim()] == "Open"); }            //if (ValveAV109 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV109.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV109.DeviceName.Trim()] == "Open"); }            //if (ValveAV110 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV110.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV110.DeviceName.Trim()] == "Open"); }            //if (ValveAV111 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV111.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV111.DeviceName.Trim()] == "Open"); }            //if (ValveAV112 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV112.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV112.DeviceName.Trim()] == "Open"); }            //if (ValveAV113 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV113.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV113.DeviceName.Trim()] == "Open"); }            //if (ValveAV114 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV114.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV114.DeviceName.Trim()] == "Open"); }            //if (ValveAV115 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV115.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV115.DeviceName.Trim()] == "Open"); }            //if (ValveAV116 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV116.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV116.DeviceName.Trim()] == "Open"); }            //if (ValveAV117 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV117.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV117.DeviceName.Trim()] == "Open"); }            //if (ValveAV118 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV118.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV118.DeviceName.Trim()] == "Open"); }            //if (ValveAV119 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV119.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV119.DeviceName.Trim()] == "Open"); }            //if (ValveAV120 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV120.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV120.DeviceName.Trim()] == "Open"); }            //if (ValveAV121 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV121.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV121.DeviceName.Trim()] == "Open"); }            //if (ValveAV122 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV122.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV122.DeviceName.Trim()] == "Open"); }            //if (ValveAV123 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV123.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV123.DeviceName.Trim()] == "Open"); }            //if (ValveAV124 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV124.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV124.DeviceName.Trim()] == "Open"); }            //if (ValveAV125 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV125.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV125.DeviceName.Trim()] == "Open"); }            //if (ValveAV126 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV126.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV126.DeviceName.Trim()] == "Open"); }            //if (ValveAV127 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV127.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV127.DeviceName.Trim()] == "Open"); }            //if (ValveAV128 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV128.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV128.DeviceName.Trim()] == "Open"); }            //if (ValveAV129 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV129.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV129.DeviceName.Trim()] == "Open"); }            //if (ValveAV130 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV130.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV130.DeviceName.Trim()] == "Open"); }            //if (ValveAV131 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV131.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV131.DeviceName.Trim()] == "Open"); }            //if (ValveAV132 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV132.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV132.DeviceName.Trim()] == "Open"); }            //if (ValveAV133 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV133.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV133.DeviceName.Trim()] == "Open"); }            //if (ValveAV134 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV134.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV134.DeviceName.Trim()] == "Open"); }            //if (ValveAV135 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV135.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV135.DeviceName.Trim()] == "Open"); }            //if (ValveAV136 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV136.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV136.DeviceName.Trim()] == "Open"); }            //if (AGVPump != null)            //{ InvokeClient.Instance.Service.DoOperation($"{AGVPump.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets["AGV"] == "Open"); }            //if (BothPump != null)            //{ InvokeClient.Instance.Service.DoOperation($"{BothPump.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets["MBP"] == "Open"); }            //if (AUCPump != null)            //{ InvokeClient.Instance.Service.DoOperation($"{AUCPump.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets["DP"] == "Open"); }            //if (ValveBWR != null)            //{ InvokeClient.Instance.Service.DoOperation($"{ValveBWR.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets["BWR"] == "Open"); }            //if (SelectedStep.ValveSets.ContainsKey("CEXH"))            //{            //    IsCEXHOn = SelectedStep.ValveSets["CEXH"] == "Open";            //}            //else            //{            //    IsCEXHOn = false;            //}            //if (SelectedStep.ValveSets.ContainsKey("DEPO"))            //{            //    IsDEPOOn = SelectedStep.ValveSets["DEPO"] == "Open";            //}            //else            //{            //    IsDEPOOn = false;            //}            //if (SelectedStep.ValveSets.ContainsKey("F2Cln"))            //{            //    IsF2ClnOn = SelectedStep.ValveSets["F2Cln"] == "Open";            //}            //else            //{            //    IsF2ClnOn = false;            //}            //if (SelectedStep.ValveSets.ContainsKey("HFCln"))            //{            //    IsHFClnOn = SelectedStep.ValveSets["HFCln"] == "Open";            //}            //else            //{            //    IsHFClnOn = false;            //}            //if (SelectedStep.ValveSets.ContainsKey("HTR1"))            //{            //    if (SelectedStep.ValveSets["HTR1"] == "Close")            //    {            //        IsHTR1Enable = false;            //    }            //    else            //    {            //        IsHTR1Enable = true;            //    }            //}            //else            //{            //    IsHTR1Enable = true;            //}            //if (SelectedStep.ValveSets.ContainsKey("HTR2"))            //{            //    if (SelectedStep.ValveSets["HTR2"] == "Close")            //    {            //        IsHTR2Enable = false;            //    }            //    else            //    {            //        IsHTR2Enable = true;            //    }            //}            //else            //{            //    IsHTR2Enable = true;            //}            //if (SelectedStep.ValveSets.ContainsKey("HTR3"))            //{            //    if (SelectedStep.ValveSets["HTR3"] == "Close")            //    {            //        IsHTR3Enable = false;            //    }            //    else            //    {            //        IsHTR3Enable = true;            //    }            //}            //else            //{            //    IsHTR3Enable = true;            //}        }        public void StepClick(string cmd)        {            bool isChangedStep = false;            //  BeforeChangedStep();            switch (cmd)            {                case "PREV":                    SelectedStep = CurrentRecipe.Steps.Where(x => x.StepNo == SelectedStep.StepNo - 1).FirstOrDefault();                    isChangedStep = true;                    break;                case "NEXT":                    SelectedStep = CurrentRecipe.Steps.Where(x => x.StepNo == SelectedStep.StepNo + 1).FirstOrDefault();                    isChangedStep = true;                    break;                default:                    break;            }            SelectedStepName = $"{SelectedStep.StepNo}:{SelectedStep.Name}";            if (isChangedStep && SelectedStep != null)            {                SetChangedStep(SelectedStep);            }            SetPREVAndNEXTBtn();            // CreateAITValveDataDefault();            SetValveVirtualFeedbackValue();            CreateMfcDefault();            CreateMfmDefault();        }        protected override void InvokeAfterUpdateProperty(Dictionary<string, object> data)        {            base.InvokeAfterUpdateProperty(data);            MFCChangedUpdate();                    }        private void MFCChangedUpdate()        {            if (MFC1.VirtualFeedBack != MFC1Data.VirtualFeedBack || MFC1.FeedBack != MFC1Data.FeedBack)            {                MFC1 = UpdateAITMfcDataToAnalogDeviceDataItem(MFC1Data);            }            if (MFC2.VirtualFeedBack != MFC2Data.VirtualFeedBack || MFC2.FeedBack != MFC2Data.FeedBack)            {                MFC2 = UpdateAITMfcDataToAnalogDeviceDataItem(MFC2Data);            }            if (MFC3.VirtualFeedBack != MFC3Data.VirtualFeedBack || MFC3.FeedBack != MFC3Data.FeedBack)            {                MFC3 = UpdateAITMfcDataToAnalogDeviceDataItem(MFC3Data);            }            if (MFC4.VirtualFeedBack != MFC4Data.VirtualFeedBack || MFC4.FeedBack != MFC4Data.FeedBack)            {                MFC4 = UpdateAITMfcDataToAnalogDeviceDataItem(MFC4Data);            }            if (MFC5.VirtualFeedBack != MFC5Data.VirtualFeedBack || MFC5.FeedBack != MFC5Data.FeedBack)            {                MFC5 = UpdateAITMfcDataToAnalogDeviceDataItem(MFC5Data);            }            if (MFC6.VirtualFeedBack != MFC6Data.VirtualFeedBack || MFC6.FeedBack != MFC6Data.FeedBack)            {                MFC6 = UpdateAITMfcDataToAnalogDeviceDataItem(MFC6Data);            }            if (MFC7.VirtualFeedBack != MFC7Data.VirtualFeedBack || MFC7.FeedBack != MFC7Data.FeedBack)            {                MFC7 = UpdateAITMfcDataToAnalogDeviceDataItem(MFC7Data);            }            if (MFC8.VirtualFeedBack != MFC8Data.VirtualFeedBack || MFC8.FeedBack != MFC8Data.FeedBack)            {                MFC8 = UpdateAITMfcDataToAnalogDeviceDataItem(MFC8Data);            }            if (MFC9.VirtualFeedBack != MFC9Data.VirtualFeedBack || MFC9.FeedBack != MFC9Data.FeedBack)            {                MFC9 = UpdateAITMfcDataToAnalogDeviceDataItem(MFC9Data);            }            if (MFC10.VirtualFeedBack != MFC10Data.VirtualFeedBack || MFC10.FeedBack != MFC10Data.FeedBack)            {                MFC10 = UpdateAITMfcDataToAnalogDeviceDataItem(MFC10Data);            }            if (MFC11.VirtualFeedBack != MFC11Data.VirtualFeedBack || MFC11.FeedBack != MFC11Data.FeedBack)            {                MFC11 = UpdateAITMfcDataToAnalogDeviceDataItem(MFC11Data);            }            if (MFC12.VirtualFeedBack != MFC12Data.VirtualFeedBack || MFC12.FeedBack != MFC12Data.FeedBack)            {                MFC12 = UpdateAITMfcDataToAnalogDeviceDataItem(MFC12Data);            }            if (MFC13.VirtualFeedBack != MFC13Data.VirtualFeedBack || MFC13.FeedBack != MFC13Data.FeedBack)            {                MFC13 = UpdateAITMfcDataToAnalogDeviceDataItem(MFC13Data);            }            if (MFC16.VirtualFeedBack != MFC16Data.VirtualFeedBack || MFC16.FeedBack != MFC16Data.FeedBack)            {                MFC16 = UpdateAITMfcDataToAnalogDeviceDataItem(MFC16Data);            }            if (MFC17.VirtualFeedBack != MFC17Data.VirtualFeedBack || MFC17.FeedBack != MFC17Data.FeedBack)            {                MFC17 = UpdateAITMfcDataToAnalogDeviceDataItem(MFC17Data);            }            if (MFC31.VirtualFeedBack != MFC31Data.VirtualFeedBack || MFC31.FeedBack != MFC31Data.FeedBack)            {                MFC31 = UpdateAITMfcDataToAnalogDeviceDataItem(MFC31Data);            }            if (MFC32.VirtualFeedBack != MFC32Data.VirtualFeedBack || MFC32.FeedBack != MFC32Data.FeedBack)            {                MFC32 = UpdateAITMfcDataToAnalogDeviceDataItem(MFC32Data);            }        }        public void TempSetSave()        {                      foreach (var item in SelectedStep.ValveSets)            {                switch (item.Name)                {                    case "AGV":                        item.Value = AGVPump.VirtualFeedback;                        break;                    case "MBP":                        item.Value = BothPump.VirtualFeedback;                        break;                    case "DP":                        item.Value = AUCPump.VirtualFeedback;                        break;                    case "BWR":                        item.Value = ValveBWR.VirtualFeedback;                        break;                    case "ValveAV91":                        item.Value = ValveDPR.VirtualFeedback;                        break;                    case "CEXH":                        item.Value = IsCEXHOn;                        break;                    case "F2Cln":                        item.Value = IsF2ClnOn;                        break;                    case "DEPO":                        item.Value = IsDEPOOn;                        break;                    case "HFCln":                        item.Value = IsHFClnOn;                        break;                    case "HTR1":                        item.Value = IsHTR1Enable;                        break;                    case "HTR2":                        item.Value = IsHTR2Enable;                        break;                    case "HTR3":                        item.Value = IsHTR3Enable;                        break;                    default:                        break;                }            }           // List<string> mfcKeys = SelectedStep.MFCSets.Keys.ToList();            foreach (var mfcitem in SelectedStep.MFCSets)            {                var replaceStr = mfcitem.ControlName;                var property = this.GetType().GetProperties().Where(x => x.Name == replaceStr).FirstOrDefault();                if (property == null) continue;                object value = property.GetValue(this, null);                if (value != null)                {                    mfcitem.SetValue.Value = (Math.Round(((AnalogDeviceDataItem)value).VirtualFeedBack, 3).ToString(""));                }            }            ((Window)GetView()).DialogResult = true;        }        public void SwichValue(string name)        {            var dialog = new SwitchValueDialog { };            dialog.IsOpen = true;            switch (name.ToUpper())            {                case "BWR":                    dialog.IsOpen = ValveBWR.VirtualFeedback;                    break;                case "DPR":                    dialog.IsOpen = ValveDPR.VirtualFeedback;                    break;                case "CEXH":                    dialog.IsOpen = IsCEXHOn;                    break;                case "F2":                    dialog.IsOpen = IsF2ClnOn;                    break;                case "HF":                    dialog.IsOpen = IsHFClnOn;                    break;                case "DEPO":                    dialog.IsOpen = IsDEPOOn;                    break;            }            dialog.Owner = WinOwner;            dialog.Topmost = true;            dialog.WindowStartupLocation = WindowStartupLocation.CenterScreen;            dialog.DeviceName = $"Swich {name}";            dialog.ShowDialog();            if ((bool)dialog.IsSave)            {                switch (name.ToUpper())                {                    case "BWR":                        InvokeClient.Instance.Service.DoOperation($"{ValveBWR.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", dialog.IsOpen);                        break;                    case "DPR":                        InvokeClient.Instance.Service.DoOperation($"{ValveDPR.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", dialog.IsOpen);                        break;                    case "CEXH":                        IsCEXHOn = dialog.IsOpen;                        SelectedStep.ValveSets.FirstOrDefault(x=>x.Name=="CEXH").Value = IsCEXHOn ;                        break;                    case "F2":                        IsF2ClnOn = dialog.IsOpen;                        SelectedStep.ValveSets.FirstOrDefault(x => x.Name == "F2Cln").Value = IsF2ClnOn;                        break;                    case "HF":                        IsHFClnOn = dialog.IsOpen;                        SelectedStep.ValveSets.FirstOrDefault(x => x.Name == "HFCln").Value = IsHFClnOn;                        break;                    case "DEPO":                        IsDEPOOn = dialog.IsOpen;                        SelectedStep.ValveSets.FirstOrDefault(x => x.Name == "DEPO").Value = IsDEPOOn;                        break;                }            }        }            public void SetEnable(string name)        {            switch (name.ToUpper())            {                case "HTR1":                    IsHTR1Enable = !IsHTR1Enable;                    SelectedStep.ValveSets.FirstOrDefault(x => x.Name == "HTR1").Value= IsHTR1Enable ;                    break;                case "HTR2":                    IsHTR2Enable = !IsHTR2Enable;                    SelectedStep.ValveSets.FirstOrDefault(x => x.Name == "HTR2").Value = IsHTR2Enable ;                    break;                case "HTR3":                    IsHTR3Enable = !IsHTR3Enable;                    SelectedStep.ValveSets.FirstOrDefault(x => x.Name == "HTR3").Value = IsHTR3Enable;                    break;            }        }                  public void SelectPump(string _pumpname)        {            if (!DialogBox.Confirm($"Are you sure change {_pumpname} status?"))                return;            if (_pumpname == "AUC")            {                InvokeClient.Instance.Service.DoOperation($"{AUCPump.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", !AUCPump.VirtualFeedback);            }            if (_pumpname == "AGV")            {                InvokeClient.Instance.Service.DoOperation($"{AGVPump.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", !AGVPump.VirtualFeedback);            }            if (_pumpname == "Both")            {                InvokeClient.Instance.Service.DoOperation($"{BothPump.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", !BothPump.VirtualFeedback);            }            if (_pumpname == "DP")            {                InvokeClient.Instance.Service.DoOperation($"{BothPump.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", !BothPump.VirtualFeedback);            }        }        public void TempSetCancel()        {            ((Window)GetView()).DialogResult = false;        }        private bool disposed = false;        public void Dispose()        {            Dispose(true);            GC.SuppressFinalize(this); // 防止垃圾回收器再次调用析构函数        }        protected virtual void Dispose(bool disposing)        {            if (!disposed)            {                if (disposing)                {                    // 释放托管资源                }                // 释放非托管资源                disposed = true;            }        }    }}
 |