1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174 |
- using Aitex.Core.Common;
- using Aitex.Core.RT.SCCore;
- using Aitex.Core.Util;
- using Caliburn.Micro;
- using Caliburn.Micro.Core;
- using FurnaceUI.Common;
- using FurnaceUI.Models;
- using MECF.Framework.Common.DataCenter;
- using MECF.Framework.Common.Equipment;
- using MECF.Framework.Common.OperationCenter;
- using MECF.Framework.Common.SubstrateTrackings;
- using MECF.Framework.UI.Client.ClientBase;
- using Microsoft.VisualBasic;
- using OpenSEMI.ClientBase;
- using System;
- using System.Collections.Generic;
- using System.Collections.ObjectModel;
- using System.Linq;
- using System.Net.Sockets;
- using System.Text;
- using System.Threading;
- using System.Threading.Tasks;
- using System.Windows;
- namespace FurnaceUI.Views.Jobs
- {
- public class LoadJOBTwoViewModel : FurnaceModuleUIViewModelBase
- {
- public bool IsExecuteRTCommand { get; set; } = true;
- public bool IsAutoFillCarrierId { get; set; } = false;
- public bool IsPChecked { get; set; } = true;
- public bool IsMChecked { get; set; } = false;
- public bool IsM1Checked { get; set; } = false;
- public bool IsM2Checked { get; set; } = false;
- public bool IsSDChecked { get; set; } = false;
- public bool IsEDChecked { get; set; } = false;
- public Visibility IsWaferTypeExceptPVisible => IsExecuteRTCommand ? Visibility.Visible : Visibility.Collapsed;
- public Visibility PTypeRadioButtonVisibility { get; set; }
- public Visibility MTypeRadioButtonVisibility { get; set; }
- public Visibility M1TypeRadioButtonVisibility { get; set; }
- public Visibility M2TypeRadioButtonVisibility { get; set; }
- public Visibility SDTypeRadioButtonVisibility { get; set; }
- public Visibility EDTypeRadioButtonVisibility { get; set; }
- public bool IsSetValue { get; set; } = false;
- public LoadJOBTwoViewModel()
- {
- }
- private int MaxValue;
- [Subscription("Stocker1.LotID")]
- public string Stocker1LotID { get; set; }
- [Subscription("Stocker2.LotID")]
- public string Stocker2LotID { get; set; }
- [Subscription("Stocker3.LotID")]
- public string Stocker3LotID { get; set; }
- [Subscription("Stocker4.LotID")]
- public string Stocker4LotID { get; set; }
- [Subscription("Stocker5.LotID")]
- public string Stocker5LotID { get; set; }
- [Subscription("Stocker6.LotID")]
- public string Stocker6LotID { get; set; }
- [Subscription("Stocker7.LotID")]
- public string Stocker7LotID { get; set; }
- [Subscription("Stocker8.LotID")]
- public string Stocker8LotID { get; set; }
- [Subscription("Stocker9.LotID")]
- public string Stocker9LotID { get; set; }
- [Subscription("Stocker10.LotID")]
- public string Stocker10LotID { get; set; }
- [Subscription("Stocker11.LotID")]
- public string Stocker11LotID { get; set; }
- [Subscription("Stocker12.LotID")]
- public string Stocker12LotID { get; set; }
- [Subscription("Stocker13.LotID")]
- public string Stocker13LotID { get; set; }
- [Subscription("Stocker14.LotID")]
- public string Stocker14LotID { get; set; }
- [Subscription("Stocker15.LotID")]
- public string Stocker15LotID { get; set; }
- [Subscription("Stocker16.LotID")]
- public string Stocker16LotID { get; set; }
- [Subscription("Stocker17.LotID")]
- public string Stocker17LotID { get; set; }
- [Subscription("Stocker18.LotID")]
- public string Stocker18LotID { get; set; }
- [Subscription("Stocker19.LotID")]
- public string Stocker19LotID { get; set; }
- [Subscription("Stocker20.LotID")]
- public string Stocker20LotID { get; set; }
- [Subscription("Stocker21.LotID")]
- public string Stocker21LotID { get; set; }
- [Subscription("Stocker1.Carrier")]
- public CarrierInfo Stocker1CarrierData { get; set; }
- [Subscription("Stocker2.Carrier")]
- public CarrierInfo Stocker2CarrierData { get; set; }
- [Subscription("Stocker3.Carrier")]
- public CarrierInfo Stocker3CarrierData { get; set; }
- [Subscription("Stocker4.Carrier")]
- public CarrierInfo Stocker4CarrierData { get; set; }
- [Subscription("Stocker5.Carrier")]
- public CarrierInfo Stocker5CarrierData { get; set; }
- [Subscription("Stocker6.Carrier")]
- public CarrierInfo Stocker6CarrierData { get; set; }
- [Subscription("Stocker7.Carrier")]
- public CarrierInfo Stocker7CarrierData { get; set; }
- [Subscription("Stocker8.Carrier")]
- public CarrierInfo Stocker8CarrierData { get; set; }
- [Subscription("Stocker9.Carrier")]
- public CarrierInfo Stocker9CarrierData { get; set; }
- [Subscription("Stocker10.Carrier")]
- public CarrierInfo Stocker10CarrierData { get; set; }
- [Subscription("Stocker11.Carrier")]
- public CarrierInfo Stocker11CarrierData { get; set; }
- [Subscription("Stocker12.Carrier")]
- public CarrierInfo Stocker12CarrierData { get; set; }
- [Subscription("Stocker13.Carrier")]
- public CarrierInfo Stocker13CarrierData { get; set; }
- [Subscription("Stocker14.Carrier")]
- public CarrierInfo Stocker14CarrierData { get; set; }
- [Subscription("Stocker15.Carrier")]
- public CarrierInfo Stocker15CarrierData { get; set; }
- [Subscription("Stocker16.Carrier")]
- public CarrierInfo Stocker16CarrierData { get; set; }
- [Subscription("Stocker17.Carrier")]
- public CarrierInfo Stocker17CarrierData { get; set; }
- [Subscription("Stocker18.Carrier")]
- public CarrierInfo Stocker18CarrierData { get; set; }
- [Subscription("Stocker19.Carrier")]
- public CarrierInfo Stocker19CarrierData { get; set; }
- [Subscription("Stocker20.Carrier")]
- public CarrierInfo Stocker20CarrierData { get; set; }
- [Subscription("Stocker21.Carrier")]
- public CarrierInfo Stocker21CarrierData { get; set; }
- [Subscription("FIMS1.Carrier")]
- public CarrierInfo FIMS1CarrierData { get; set; }
- [Subscription("FIMS2.Carrier")]
- public CarrierInfo FIMS2CarrierData { get; set; }
- [Subscription("LP1.Carrier")]
- public CarrierInfo LP1CarrierData { get; set; }
- [Subscription("LP2.Carrier")]
- public CarrierInfo LP2CarrierData { get; set; }
- [Subscription("CarrierRobot.Carrier")]
- public CarrierInfo CassetteRobotCarrierData { get; set; }
- public ObservableCollection<CarrierInfo> CarrierDataNameList { get; set; } = new ObservableCollection<CarrierInfo>();
- [Subscription("Scheduler.OccupyStockers")]
- public List<string> OccupyStockers { get; set; }
- private int _stockValue;
- public int StockValue
- {
- get => _stockValue;
- set
- {
- _stockValue = value;
- NotifyOfPropertyChange("StockValue");
- }
- }
- private Visibility _pTypeVisibility = Visibility.Visible;
- public Visibility PTypeVisibility
- {
- get => _pTypeVisibility;
- set
- {
- _pTypeVisibility = value;
- NotifyOfPropertyChange("PTypeVisibility");
- }
- }
- private Visibility _sdTypeVisibility = Visibility.Hidden;
- public Visibility SDTypeVisibility
- {
- get => _sdTypeVisibility;
- set
- {
- _sdTypeVisibility = value;
- NotifyOfPropertyChange("SDTypeVisibility");
- }
- }
- private Visibility _m1TypeVisibility = Visibility.Hidden;
- public Visibility M1TypeVisibility
- {
- get => _m1TypeVisibility;
- set
- {
- _m1TypeVisibility = value;
- NotifyOfPropertyChange("M1TypeVisibility");
- }
- }
- private Visibility _m2TypeVisibility = Visibility.Hidden;
- public Visibility M2TypeVisibility
- {
- get => _m2TypeVisibility;
- set
- {
- _m2TypeVisibility = value;
- NotifyOfPropertyChange("M2TypeVisibility");
- }
- }
- private Visibility _edTypeVisibility = Visibility.Hidden;
- public Visibility EDTypeVisibility
- {
- get => _edTypeVisibility;
- set
- {
- _edTypeVisibility = value;
- NotifyOfPropertyChange("EDTypeVisibility");
- }
- }
- private Visibility _mTypeVisibility = Visibility.Hidden;
- public Visibility MTypeVisibility
- {
- get => _mTypeVisibility;
- set
- {
- _mTypeVisibility = value;
- NotifyOfPropertyChange("MTypeVisibility");
- }
- }
- private Visibility _allTypeVisibility = Visibility.Hidden;
- public Visibility AllTypeVisibility
- {
- get => _allTypeVisibility;
- set
- {
- _allTypeVisibility = value;
- NotifyOfPropertyChange("ALLTypeVisibility");
- }
- }
- public string ExecCommand { get; set; }
- public string ExecText { get; set; } = "EXEC";
- private string _batchType = "P";
- public string WaferType { get; set; } = "P";
- public string LoadJobPara { get; set; }
- public string LoadJobTypePara { get; set; }
- public ObservableCollection<CarrierInfo> MCarrierlist = new ObservableCollection<CarrierInfo>();
- public ObservableCollection<CarrierInfo> M1Carrierlist = new ObservableCollection<CarrierInfo>();
- public ObservableCollection<CarrierInfo> M2Carrierlist = new ObservableCollection<CarrierInfo>();
- public ObservableCollection<CarrierInfo> SDCarrierlist = new ObservableCollection<CarrierInfo>();
- public ObservableCollection<CarrierInfo> EDCarrierlist = new ObservableCollection<CarrierInfo>();
- public ObservableCollection<CarrierInfo> PCarrierlist = new ObservableCollection<CarrierInfo>();
- public ObservableCollection<CarrierInfo> NoneCarrierlist = new ObservableCollection<CarrierInfo>();
- public ObservableCollection<CarrierInfo> Carrierlist = new ObservableCollection<CarrierInfo>();
- public Dictionary<string, string> stockerWaferTypeDict { get; set; } = new Dictionary<string, string>();
- public ObservableCollection<CarrierMaterialInformation> CarrierM1ItemList { get; set; } = new ObservableCollection<CarrierMaterialInformation>();
- public ObservableCollection<CarrierMaterialInformation> CarrierM1ItemTempList { get; set; } = new ObservableCollection<CarrierMaterialInformation>();
- public ObservableCollection<CarrierMaterialInformation> CarrierM2ItemList { get; set; } = new ObservableCollection<CarrierMaterialInformation>();
- public ObservableCollection<CarrierMaterialInformation> CarrierM2ItemTempList { get; set; } = new ObservableCollection<CarrierMaterialInformation>();
- public ObservableCollection<CarrierMaterialInformation> CarrierMItemList { get; set; } = new ObservableCollection<CarrierMaterialInformation>();
- public ObservableCollection<CarrierMaterialInformation> CarrierMItemTempList { get; set; } = new ObservableCollection<CarrierMaterialInformation>();
- public ObservableCollection<CarrierMaterialInformation> CarrierSDItemList { get; set; } = new ObservableCollection<CarrierMaterialInformation>();
- public ObservableCollection<CarrierMaterialInformation> CarrierSDItemTempList { get; set; } = new ObservableCollection<CarrierMaterialInformation>();
- public ObservableCollection<CarrierMaterialInformation> CarrierEDItemList { get; set; } = new ObservableCollection<CarrierMaterialInformation>();
- public ObservableCollection<CarrierMaterialInformation> CarrierEDItemTempList { get; set; } = new ObservableCollection<CarrierMaterialInformation>();
- public ObservableCollection<CarrierMaterialInformation> CarrierPItemList { get; set; } = new ObservableCollection<CarrierMaterialInformation>();
- public ObservableCollection<CarrierMaterialInformation> CarrierPItemTempList { get; set; } = new ObservableCollection<CarrierMaterialInformation>();
- public ObservableCollection<CarrierInformation> CarrierInformationList { get; set; } = new ObservableCollection<CarrierInformation>();
- protected override void OnInitialize()
- {
- base.OnInitialize();
- IsAutoFillCarrierId = (bool)QueryDataClient.Instance.Service.GetConfig("System.IsAutoFillCarrierId");
- InitStockerWaferTypeDict();
- if (IsM1Checked)
- {
- M1TypeVisibility = Visibility.Visible;
- WaferType = "M1";
- }
- else if (IsM2Checked)
- {
- M2TypeVisibility = Visibility.Visible;
- WaferType = "M2";
- }
- else if (IsPChecked)
- {
- PTypeVisibility = Visibility.Visible;
- WaferType = "P";
- }
- else if (IsEDChecked)
- {
- EDTypeVisibility = Visibility.Visible;
- WaferType = "ED";
- }
- else if (IsSDChecked)
- {
- SDTypeVisibility = Visibility.Visible;
- WaferType = "SD";
- }
- else
- {
- EDTypeVisibility = Visibility.Visible;
- WaferType = "ED";
- }
- MaxValue = 0;
- }
- private void InitStockerWaferTypeDict()
- {
- for (int i = 1; i <= 18; i++)
- {
- var dataType = (string)QueryDataClient.Instance.Service.GetConfig($"System.Stocker.Stocker{i}WaferType").ToString();
- var stockerWaferType = dataType.Replace("1", "").Replace("2", "");
- var item = stockerWaferType.ToString() + i;
- stockerWaferTypeDict.Add(item, dataType);
- }
- }
- public void StockerCarrier()
- {
- CarrierDataNameList.Clear();
- if (Stocker1CarrierData != null)
- {
- Stocker1CarrierData.StockerIndex = 1;
- CarrierDataNameList.Add(Stocker1CarrierData);
- }
- if (Stocker2CarrierData != null)
- {
- Stocker2CarrierData.StockerIndex = 2;
- CarrierDataNameList.Add(Stocker2CarrierData);
- }
- if (Stocker3CarrierData != null)
- {
- Stocker3CarrierData.StockerIndex = 3;
- CarrierDataNameList.Add(Stocker3CarrierData);
- }
- if (Stocker4CarrierData != null)
- {
- Stocker4CarrierData.StockerIndex = 4;
- CarrierDataNameList.Add(Stocker4CarrierData);
- }
- if (Stocker5CarrierData != null)
- {
- Stocker5CarrierData.StockerIndex = 5;
- CarrierDataNameList.Add(Stocker5CarrierData);
- }
- if (Stocker6CarrierData != null)
- {
- Stocker6CarrierData.StockerIndex = 6;
- CarrierDataNameList.Add(Stocker6CarrierData);
- }
- if (Stocker7CarrierData != null)
- {
- Stocker7CarrierData.StockerIndex = 7;
- CarrierDataNameList.Add(Stocker7CarrierData);
- }
- if (Stocker8CarrierData != null)
- {
- Stocker8CarrierData.StockerIndex = 8;
- CarrierDataNameList.Add(Stocker8CarrierData);
- }
- if (Stocker9CarrierData != null)
- {
- Stocker9CarrierData.StockerIndex = 9;
- CarrierDataNameList.Add(Stocker9CarrierData);
- }
- if (Stocker10CarrierData != null)
- {
- Stocker10CarrierData.StockerIndex = 10;
- CarrierDataNameList.Add(Stocker10CarrierData);
- }
- if (Stocker11CarrierData != null)
- {
- Stocker11CarrierData.StockerIndex = 11;
- CarrierDataNameList.Add(Stocker11CarrierData);
- }
- if (Stocker12CarrierData != null)
- {
- Stocker12CarrierData.StockerIndex = 12;
- CarrierDataNameList.Add(Stocker12CarrierData);
- }
- if (Stocker13CarrierData != null)
- {
- Stocker13CarrierData.StockerIndex = 13;
- CarrierDataNameList.Add(Stocker13CarrierData);
- }
- if (Stocker14CarrierData != null)
- {
- Stocker14CarrierData.StockerIndex = 14;
- CarrierDataNameList.Add(Stocker14CarrierData);
- }
- if (Stocker15CarrierData != null)
- {
- Stocker15CarrierData.StockerIndex = 15;
- CarrierDataNameList.Add(Stocker15CarrierData);
- }
- if (Stocker16CarrierData != null)
- {
- Stocker16CarrierData.StockerIndex = 16;
- CarrierDataNameList.Add(Stocker16CarrierData);
- }
- if (Stocker17CarrierData != null)
- {
- Stocker17CarrierData.StockerIndex = 17;
- CarrierDataNameList.Add(Stocker17CarrierData);
- }
- if (Stocker18CarrierData != null)
- {
- Stocker18CarrierData.StockerIndex = 18;
- CarrierDataNameList.Add(Stocker18CarrierData);
- }
- foreach (var item in CarrierDataNameList)
- {
- if (string.IsNullOrEmpty(item.Name))
- {
- item.Name = $"Stocker{item.StockerIndex}";
- }
- }
- if ((bool)QueryDataClient.Instance.Service.GetConfig($"System.SetUp.IsFIMS1Installed"))
- CarrierDataNameList.Add(FIMS1CarrierData);
- if ((bool)QueryDataClient.Instance.Service.GetConfig($"System.SetUp.IsFIMS2Installed"))
- CarrierDataNameList.Add(FIMS2CarrierData);
- CarrierDataNameList.Add(CassetteRobotCarrierData);
- }
- string[] moduleNames = new string[] { "Stocker1", "Stocker2", "Stocker3", "Stocker4", "Stocker5", "Stocker6", "Stocker7", "Stocker8", "Stocker9",
- "Stocker10","Stocker11","Stocker12","Stocker13","Stocker14","Stocker15","Stocker16","Stocker17","Stocker18"};
- protected override void InvokeAfterUpdateProperty(Dictionary<string, object> data)
- {
- base.InvokeAfterUpdateProperty(data);
- }
- protected override void OnViewLoaded(object view)
- {
- base.OnViewLoaded(view);
- StockerCarrier();
- MCarrierlist.Clear();
- M1Carrierlist.Clear();
- M2Carrierlist.Clear();
- EDCarrierlist.Clear();
- SDCarrierlist.Clear();
- PCarrierlist.Clear();
- for (int i = 0; i < CarrierDataNameList.Count; i++)
- {
- string stockerType = (string)QueryDataClient.Instance.Service.GetConfig($"System.Stocker.Stocker{CarrierDataNameList[i].StockerIndex}WaferType");
- if (stockerType == null)
- {
- continue;
- }
- if (OccupyStockers != null && OccupyStockers.Any(x => x == $"Stocker{CarrierDataNameList[i].StockerIndex}"))
- continue;
- //有下列几种情况下 stocker不被统计
- //1:位于CarrierRobot上
- //2:位于FIMS1/2上
- //3:放到了其他stocker上
- var boolCarrierRobot = (CassetteRobotCarrierData != null && CassetteRobotCarrierData.InnerId != Guid.Empty && CassetteRobotCarrierData.InternalModuleName.ToString().Equals(CarrierDataNameList[i].Name));
- var boolFIMS1 = (FIMS1CarrierData != null && FIMS1CarrierData.InnerId != Guid.Empty && FIMS1CarrierData.InternalModuleName.ToString().Equals(CarrierDataNameList[i].Name));
- var boolFIMS2 = (FIMS2CarrierData != null && FIMS2CarrierData.InnerId != Guid.Empty && FIMS2CarrierData.InternalModuleName.ToString().Equals(CarrierDataNameList[i].Name));
- var boolOtherStocker = (CarrierDataNameList[i].Name != CarrierDataNameList[i].InternalModuleName.ToString() && CarrierDataNameList[i].InnerId != Guid.Empty);
- if (boolCarrierRobot || boolFIMS1 || boolFIMS2 || boolOtherStocker)
- {
- continue;
- }
- if (stockerType.Equals("M1") || stockerType.Equals(CarrierType.None.ToString()))
- {
- CarrierDataNameList[i].CarrierType = stockerType.Equals(CarrierType.M1.ToString()) ? CarrierType.M1 : CarrierType.None;
- M1Carrierlist.Add(CarrierDataNameList[i]);
- }
- if (stockerType.Equals("M2") || stockerType.Equals(CarrierType.None.ToString()))
- {
- CarrierDataNameList[i].CarrierType = stockerType.Equals(CarrierType.M2.ToString()) ? CarrierType.M2 : CarrierType.None;
- M2Carrierlist.Add(CarrierDataNameList[i]);
- }
- if (stockerType.Equals("ED") || stockerType.Equals(CarrierType.None.ToString()))
- {
- CarrierDataNameList[i].CarrierType = stockerType.Equals(CarrierType.ED.ToString()) ? CarrierType.ED : CarrierType.None;
- EDCarrierlist.Add(CarrierDataNameList[i]);
- }
- if (stockerType.Equals("SD") || stockerType.Equals(CarrierType.None.ToString()))
- {
- CarrierDataNameList[i].CarrierType = stockerType.Equals(CarrierType.SD.ToString()) ? CarrierType.SD : CarrierType.None;
- SDCarrierlist.Add(CarrierDataNameList[i]);
- }
- if (stockerType.Contains("P") || stockerType.Equals(CarrierType.None.ToString()))
- {
- CarrierDataNameList[i].CarrierType = stockerType.Contains(CarrierType.P.ToString()) ? CarrierType.P : CarrierType.None;
- PCarrierlist.Add(CarrierDataNameList[i]);
- }
- }
- }
- protected override void OnViewReady(object view)
- {
- base.OnViewReady(view);
- }
- protected override void OnActivate()
- {
- base.OnActivate();
- }
- public void ValueCmd(string cmdPar)
- {
- switch (cmdPar)
- {
- case "Add":
- //最大值调整为动态获取 而不是根据配置项
- MaxValue = getStockEmptyMaxValue(WaferType);
- if (StockValue < MaxValue)
- {
- StockValue++;
- //InitialPortName(WaferType);
- switch (WaferType)
- {
- case "P":
- CarrierPItemTempList.Clear();
- for (int i = 0; i < PCarrierlist.Count; i++)
- {
- if (CarrierStatus.Normal.Equals(PCarrierlist[i].Status)) continue;
- if (!(bool)QueryDataClient.Instance.Service.GetConfig($"System.SetUp.IsStocker{PCarrierlist[i].StockerIndex}Installed")) continue;
- CarrierMaterialInformation carrierInfo = new CarrierMaterialInformation();
- carrierInfo.No = $"{PCarrierlist[i].StockerIndex}";
- carrierInfo.ModuleName = $"Stocker{PCarrierlist[i].StockerIndex}";
- carrierInfo.CarrierType = PCarrierlist[i].CarrierType.ToString();
- carrierInfo.CarrierId = PCarrierlist[i].CarrierId;
- carrierInfo.WaferCount = PCarrierlist[i].WaferCount.ToString();
- carrierInfo.StockerCarrierEnable = true;
- CarrierPItemTempList.Add(carrierInfo);
- }
- CarrierPItemList.Add(CarrierPItemTempList[StockValue - 1]);
- break;
- case "SD":
- CarrierSDItemTempList.Clear();
- for (int i = 0; i < SDCarrierlist.Count; i++)
- {
- if (CarrierStatus.Normal.Equals(SDCarrierlist[i].Status)) continue;
- if (!(bool)QueryDataClient.Instance.Service.GetConfig($"System.SetUp.IsStocker{SDCarrierlist[i].StockerIndex}Installed")) continue;
- CarrierMaterialInformation carrierInfo = new CarrierMaterialInformation();
- carrierInfo.No = $"{SDCarrierlist[i].StockerIndex}"; ;
- carrierInfo.ModuleName = $"Stocker{SDCarrierlist[i].StockerIndex}";
- carrierInfo.CarrierType = SDCarrierlist[i].CarrierType.ToString();
- carrierInfo.CarrierId = SDCarrierlist[i].CarrierId;
- carrierInfo.WaferCount = SDCarrierlist[i].WaferCount.ToString();
- carrierInfo.StockerCarrierEnable = true;
- CarrierSDItemTempList.Add(carrierInfo);
- }
- CarrierSDItemList.Add(CarrierSDItemTempList[StockValue - 1]);
- break;
- case "ED":
- CarrierEDItemTempList.Clear();
- for (int i = 0; i < EDCarrierlist.Count; i++)
- {
- if (CarrierStatus.Normal.Equals(EDCarrierlist[i].Status)) continue;
- if (!(bool)QueryDataClient.Instance.Service.GetConfig($"System.SetUp.IsStocker{EDCarrierlist[i].StockerIndex}Installed")) continue;
- CarrierMaterialInformation carrierInfo = new CarrierMaterialInformation();
- carrierInfo.No = $"{EDCarrierlist[i].StockerIndex}";
- carrierInfo.ModuleName = $"Stocker{EDCarrierlist[i].StockerIndex}";
- carrierInfo.CarrierType = EDCarrierlist[i].CarrierType.ToString();
- carrierInfo.CarrierId = EDCarrierlist[i].CarrierId;
- carrierInfo.WaferCount = EDCarrierlist[i].WaferCount.ToString();
- carrierInfo.StockerCarrierEnable = true;
- CarrierEDItemTempList.Add(carrierInfo);
- }
- CarrierEDItemList.Add(CarrierEDItemTempList[StockValue - 1]);
- break;
- case "M":
- CarrierMItemTempList.Clear();
- for (int i = 0; i < MCarrierlist.Count; i++)
- {
- if (CarrierStatus.Normal.Equals(MCarrierlist[i].Status)) continue;
- if (!(bool)QueryDataClient.Instance.Service.GetConfig($"System.SetUp.IsStocker{MCarrierlist[i].StockerIndex}Installed")) continue;
- CarrierMaterialInformation carrierInfo = new CarrierMaterialInformation();
- carrierInfo.No = $"{MCarrierlist[i].StockerIndex}";
- //carrierInfo.ModuleName = MCarrierlist[i].InternalModuleName.ToString();
- carrierInfo.ModuleName = $"Stocker{MCarrierlist[i].StockerIndex}";
- carrierInfo.CarrierType = MCarrierlist[i].CarrierType.ToString();
- carrierInfo.CarrierId = MCarrierlist[i].CarrierId;
- carrierInfo.WaferCount = MCarrierlist[i].WaferCount.ToString();
- carrierInfo.StockerCarrierEnable = true;
- CarrierMItemTempList.Add(carrierInfo);
- }
- CarrierMItemList.Add(CarrierMItemTempList[StockValue - 1]);
- break;
- case "M1":
- CarrierM1ItemTempList.Clear();
- for (int i = 0; i < M1Carrierlist.Count; i++)
- {
- if (CarrierStatus.Normal.Equals(M1Carrierlist[i].Status)) continue;
- if (!(bool)QueryDataClient.Instance.Service.GetConfig($"System.SetUp.IsStocker{M1Carrierlist[i].StockerIndex}Installed")) continue;
- CarrierMaterialInformation carrierInfo = new CarrierMaterialInformation();
- carrierInfo.No = $"{M1Carrierlist[i].StockerIndex}";
- carrierInfo.ModuleName = $"Stocker{M1Carrierlist[i].StockerIndex}";
- carrierInfo.CarrierType = M1Carrierlist[i].CarrierType.ToString();
- carrierInfo.CarrierId = M1Carrierlist[i].CarrierId;
- carrierInfo.WaferCount = M1Carrierlist[i].WaferCount.ToString();
- carrierInfo.StockerCarrierEnable = true;
- CarrierM1ItemTempList.Add(carrierInfo);
- }
- CarrierM1ItemList.Add(CarrierM1ItemTempList[StockValue - 1]);
- break;
- case "M2":
- CarrierM2ItemTempList.Clear();
- for (int i = 0; i < M2Carrierlist.Count; i++)
- {
- if (CarrierStatus.Normal.Equals(M2Carrierlist[i].Status)) continue;
- if (!(bool)QueryDataClient.Instance.Service.GetConfig($"System.SetUp.IsStocker{M2Carrierlist[i].StockerIndex}Installed")) continue;
- CarrierMaterialInformation carrierInfo = new CarrierMaterialInformation();
- carrierInfo.No = $"{M2Carrierlist[i].StockerIndex}";
- carrierInfo.ModuleName = $"Stocker{M2Carrierlist[i].StockerIndex}";
- carrierInfo.CarrierType = M2Carrierlist[i].CarrierType.ToString();
- carrierInfo.CarrierId = M2Carrierlist[i].CarrierId;
- carrierInfo.WaferCount = M2Carrierlist[i].WaferCount.ToString();
- carrierInfo.StockerCarrierEnable = true;
- CarrierM2ItemTempList.Add(carrierInfo);
- }
- CarrierM2ItemList.Add(CarrierM2ItemTempList[StockValue - 1]);
- break;
- default:
- break;
- }
- }
- break;
- case "Sub":
- if (StockValue > 0)
- {
- StockValue--;
- if (WaferType == "M" && CarrierMItemList.Count > 0)
- {
- CarrierMItemList.RemoveAt(CarrierMItemList.Count - 1);
- }
- if (WaferType == "M1" && CarrierM1ItemList.Count > 0)
- {
- CarrierM1ItemList.RemoveAt(CarrierM1ItemList.Count - 1);
- }
- if (WaferType == "M2" && CarrierM2ItemList.Count > 0)
- {
- CarrierM2ItemList.RemoveAt(CarrierM2ItemList.Count - 1);
- }
- if (WaferType == "ED" && CarrierEDItemList.Count > 0)
- {
- CarrierEDItemList.RemoveAt(CarrierEDItemList.Count - 1);
- }
- if (WaferType == "SD" && CarrierSDItemList.Count > 0)
- {
- CarrierSDItemList.RemoveAt(CarrierSDItemList.Count - 1);
- }
- if (WaferType == "P" && CarrierPItemList.Count > 0)
- {
- CarrierPItemList.RemoveAt(CarrierPItemList.Count - 1);
- }
- //InitialPortName(WaferType);
- }
- break;
- default:
- break;
- }
- }
- /// <summary>
- /// 获取指定类型下空Stock数量
- /// </summary>
- /// <param name="stockType"></param>
- /// <returns></returns>
- public int getStockEmptyMaxValue(string stockType)
- {
- if ("P".Equals(stockType))
- {
- int count = 0;
- for (int i = 0; i < PCarrierlist.Count; i++)
- {
- if ((bool)QueryDataClient.Instance.Service.GetConfig($"System.SetUp.IsStocker{PCarrierlist[i].StockerIndex}Installed") && CarrierStatus.Empty.Equals(PCarrierlist[i].Status))
- {
- count++;
- }
- }
- return count;
- }
- if ("SD".Equals(stockType))
- {
- int count = 0;
- for (int i = 0; i < SDCarrierlist.Count; i++)
- {
- if ((bool)QueryDataClient.Instance.Service.GetConfig($"System.SetUp.IsStocker{SDCarrierlist[i].StockerIndex}Installed") && CarrierStatus.Empty.Equals(SDCarrierlist[i].Status))
- {
- count++;
- }
- }
- return count;
- }
- if ("ED".Equals(stockType))
- {
- int count = 0;
- for (int i = 0; i < EDCarrierlist.Count; i++)
- {
- if ((bool)QueryDataClient.Instance.Service.GetConfig($"System.SetUp.IsStocker{EDCarrierlist[i].StockerIndex}Installed") && CarrierStatus.Empty.Equals(EDCarrierlist[i].Status))
- {
- count++;
- }
- }
- return count;
- }
- if ("M1".Equals(stockType))
- {
- int count = 0;
- for (int i = 0; i < M1Carrierlist.Count; i++)
- {
- if ((bool)QueryDataClient.Instance.Service.GetConfig($"System.SetUp.IsStocker{M1Carrierlist[i].StockerIndex}Installed") && CarrierStatus.Empty.Equals(M1Carrierlist[i].Status))
- {
- count++;
- }
- }
- return count;
- }
- if ("M2".Equals(stockType))
- {
- int count = 0;
- for (int i = 0; i < M2Carrierlist.Count; i++)
- {
- if ((bool)QueryDataClient.Instance.Service.GetConfig($"System.SetUp.IsStocker{M2Carrierlist[i].StockerIndex}Installed") && CarrierStatus.Empty.Equals(M2Carrierlist[i].Status))
- {
- count++;
- }
- }
- return count;
- }
- return 0;
- }
- public void WaferTypeSelect(string type)
- {
- var waferTypeList = QueryDataClient.Instance.Service.GetConfigItemList().Where(m => m.Name.StartsWith(ConstantsCommon.Stocker)).ToList();
- switch (type)
- {
- case ConstantsCommon.P:
- StockValue = waferTypeList.Where(n => n.Value.ToString().Contains(ConstantsCommon.P)).Count();
- PTypeVisibility = Visibility.Visible;
- SDTypeVisibility = Visibility.Collapsed;
- EDTypeVisibility = Visibility.Collapsed;
- MTypeVisibility = Visibility.Collapsed;
- M1TypeVisibility = Visibility.Collapsed;
- M2TypeVisibility = Visibility.Collapsed;
- WaferType = ConstantsCommon.P;
- CarrierPItemList.Clear();
- for (int i = 0; i < PCarrierlist.Count; i++)
- {
- if (CarrierStatus.Normal.Equals(PCarrierlist[i].Status))
- {
- StockValue--;
- continue;
- }
- }
- break;
- case ConstantsCommon.SD:
- StockValue = waferTypeList.Where(n => n.Value.ToString().Contains(ConstantsCommon.SD)).Count();
- PTypeVisibility = Visibility.Collapsed;
- SDTypeVisibility = Visibility.Visible;
- EDTypeVisibility = Visibility.Collapsed;
- MTypeVisibility = Visibility.Collapsed;
- M1TypeVisibility = Visibility.Collapsed;
- M2TypeVisibility = Visibility.Collapsed;
- WaferType = ConstantsCommon.SD;
- CarrierSDItemList.Clear();
- for (int i = 0; i < SDCarrierlist.Count; i++)
- {
- if (CarrierStatus.Normal.Equals(SDCarrierlist[i].Status))
- {
- StockValue--;
- continue;
- }
- }
- break;
- case ConstantsCommon.ED:
- StockValue = waferTypeList.Where(n => n.Value.ToString().Contains(ConstantsCommon.ED)).Count();
- PTypeVisibility = Visibility.Collapsed;
- SDTypeVisibility = Visibility.Collapsed;
- EDTypeVisibility = Visibility.Visible;
- MTypeVisibility = Visibility.Collapsed;
- M1TypeVisibility = Visibility.Collapsed;
- M2TypeVisibility = Visibility.Collapsed;
- WaferType = ConstantsCommon.ED;
- CarrierEDItemList.Clear();
- for (int i = 0; i < EDCarrierlist.Count; i++)
- {
- if (CarrierStatus.Normal.Equals(EDCarrierlist[i].Status))
- {
- StockValue--;
- continue;
- }
- }
- break;
- case ConstantsCommon.M:
- StockValue = waferTypeList.Where(n => n.Value.ToString().Contains(ConstantsCommon.M)).Count();
- PTypeVisibility = Visibility.Collapsed;
- SDTypeVisibility = Visibility.Collapsed;
- EDTypeVisibility = Visibility.Collapsed;
- MTypeVisibility = Visibility.Visible;
- AllTypeVisibility = Visibility.Visible;
- M1TypeVisibility = Visibility.Collapsed;
- M2TypeVisibility = Visibility.Collapsed;
- WaferType = ConstantsCommon.M;
- CarrierMItemList.Clear();
- for (int i = 0; i < MCarrierlist.Count; i++)
- {
- if (CarrierStatus.Normal.Equals(MCarrierlist[i].Status))
- {
- StockValue--;
- continue;
- }
- }
- break;
- case ConstantsCommon.M1:
- StockValue = waferTypeList.Where(n => n.Value.ToString().Contains(ConstantsCommon.M1)).Count();
- PTypeVisibility = Visibility.Collapsed;
- SDTypeVisibility = Visibility.Collapsed;
- EDTypeVisibility = Visibility.Collapsed;
- MTypeVisibility = Visibility.Collapsed;
- M1TypeVisibility = Visibility.Visible;
- M2TypeVisibility = Visibility.Collapsed;
- WaferType = ConstantsCommon.M1;
- CarrierM1ItemList.Clear();
- for (int i = 0; i < M1Carrierlist.Count; i++)
- {
- if (CarrierStatus.Normal.Equals(M1Carrierlist[i].Status))
- {
- StockValue--;
- continue;
- }
- }
- break;
- case ConstantsCommon.M2:
- StockValue = waferTypeList.Where(n => n.Value.ToString().Contains(ConstantsCommon.M2)).Count();
- PTypeVisibility = Visibility.Collapsed;
- SDTypeVisibility = Visibility.Collapsed;
- EDTypeVisibility = Visibility.Collapsed;
- MTypeVisibility = Visibility.Collapsed;
- M1TypeVisibility = Visibility.Collapsed;
- M2TypeVisibility = Visibility.Visible;
- WaferType = ConstantsCommon.M2;
- CarrierM2ItemList.Clear();
- for (int i = 0; i < M2Carrierlist.Count; i++)
- {
- if (CarrierStatus.Normal.Equals(M2Carrierlist[i].Status))
- {
- StockValue--;
- continue;
- }
- }
- break;
- default:
- break;
- }
- MaxValue = StockValue;
- StockValue = 0;
- InitialPortName(WaferType);
- }
- public void GetCarrier()
- {
- }
- public void EditCarrierID(string value)
- {
- var windowManager = IoC.Get<IWindowManager>();
- WaferMapSelectedViewModel inputCarrierInfoViewModel = new WaferMapSelectedViewModel();
- inputCarrierInfoViewModel.WaferType = WaferType;
- inputCarrierInfoViewModel.WaferNo = value;
- CarrierMaterialInformation carr=null;
- switch (WaferType)
- {
- case "P":
- carr = CarrierPItemList.FirstOrDefault(x => x.No == value);
- break;
- case "SD":
- carr = CarrierSDItemList.FirstOrDefault(x => x.No == value);
- break;
- case "ED":
- carr = CarrierEDItemList.FirstOrDefault(x => x.No == value);
- break;
- case "M1":
- carr = CarrierM1ItemList.FirstOrDefault(x => x.No == value);
- break;
- case "M2":
- carr = CarrierM2ItemList.FirstOrDefault(x => x.No == value);
- break;
- default:
- break;
- }
- if (carr != null) inputCarrierInfoViewModel.StrSlots = carr.StrSlot;
- inputCarrierInfoViewModel.Wafers = carr.Wafers;
- if ((bool)(windowManager as WindowManager)?.ShowDialogWithTitle(inputCarrierInfoViewModel, null, "Wafer Map"))
- {
- foreach (var item in CarrierPItemList)
- {
- if (item.No.Equals(inputCarrierInfoViewModel.WaferNo))
- {
- item.CarrierId = inputCarrierInfoViewModel.CarrierID;
- item.WaferCount = inputCarrierInfoViewModel.WaferCount;
- item.SlotMap = inputCarrierInfoViewModel.SlotMap;
- item.StrSlot = inputCarrierInfoViewModel.StrSlots;
- item.ExistSlot = inputCarrierInfoViewModel.IsExistChecked ? "Exist" : "None";
- }
- }
- foreach (var item in CarrierSDItemList)
- {
- if (item.No.Equals(inputCarrierInfoViewModel.WaferNo))
- {
- item.CarrierId = inputCarrierInfoViewModel.CarrierID;
- item.WaferCount = inputCarrierInfoViewModel.WaferCount;
- item.SlotMap = inputCarrierInfoViewModel.SlotMap;
- item.StrSlot = inputCarrierInfoViewModel.StrSlots;
- item.ExistSlot = inputCarrierInfoViewModel.IsExistChecked ? "Exist" : "None";
- }
- }
- foreach (var item in CarrierEDItemList)
- {
- if (item.No.Equals(inputCarrierInfoViewModel.WaferNo))
- {
- item.CarrierId = inputCarrierInfoViewModel.CarrierID;
- item.WaferCount = inputCarrierInfoViewModel.WaferCount;
- item.SlotMap = inputCarrierInfoViewModel.SlotMap;
- item.StrSlot = inputCarrierInfoViewModel.StrSlots;
- item.ExistSlot = inputCarrierInfoViewModel.IsExistChecked ? "Exist" : "None";
- }
- }
- foreach (var item in CarrierMItemList)
- {
- if (item.No.Equals(inputCarrierInfoViewModel.WaferNo))
- {
- item.CarrierId = inputCarrierInfoViewModel.CarrierID;
- item.WaferCount = inputCarrierInfoViewModel.WaferCount;
- item.SlotMap = inputCarrierInfoViewModel.SlotMap;
- item.StrSlot = inputCarrierInfoViewModel.StrSlots;
- item.ExistSlot = inputCarrierInfoViewModel.IsExistChecked ? "Exist" : "None";
- }
- }
- foreach (var item in CarrierM1ItemList)
- {
- if (item.No.Equals(inputCarrierInfoViewModel.WaferNo))
- {
- item.CarrierId = inputCarrierInfoViewModel.CarrierID;
- item.WaferCount = inputCarrierInfoViewModel.WaferCount;
- item.SlotMap = inputCarrierInfoViewModel.SlotMap;
- item.StrSlot = inputCarrierInfoViewModel.StrSlots;
- item.ExistSlot = inputCarrierInfoViewModel.IsExistChecked ? "Exist" : "None";
- }
- }
- foreach (var item in CarrierM2ItemList)
- {
- if (item.No.Equals(inputCarrierInfoViewModel.WaferNo))
- {
- item.CarrierId = inputCarrierInfoViewModel.CarrierID;
- item.WaferCount = inputCarrierInfoViewModel.WaferCount;
- item.SlotMap = inputCarrierInfoViewModel.SlotMap;
- item.StrSlot = inputCarrierInfoViewModel.StrSlots;
- item.ExistSlot = inputCarrierInfoViewModel.IsExistChecked ? "Exist" : "None";
- }
- }
- }
- else
- {
-
- }
- }
- public void TextChangedCmd()
- {
- if (StockValue < 0) StockValue = 0;
- InitialPortName(_batchType);
- }
- private void InitialPortName(string Type, bool initLotID = false)
- {
- //RightPort1Visibility = false; RightPort2Visibility = false; RightPort3Visibility = false;
- var StockerConfigList = QueryDataClient.Instance.Service.GetConfigItemList().Where(m => m.Name.Contains("WaferType")).ToList();
- int j = 0;
- int x = 0;
- int y = 0;
- for (int i = 1; i <= StockerConfigList.Count; i++)
- {
- string StockerType = (string)QueryDataClient.Instance.Service.GetConfig($"System.Stocker.Stocker{i}WaferType");
- if (j == StockValue || j > 12 && Type == "P")
- break;
- if (x == StockValue || x > 6 && Type == "ED")
- break;
- }
- }
- public void LoadPortCheck(string No, string LPName)
- {
- foreach (var item in CarrierPItemList)
- {
- if (item.No.Equals(No))
- {
- item.LoadPortName = LPName;
- }
- }
- foreach (var item in CarrierSDItemList)
- {
- if (item.No.Equals(No))
- {
- item.LoadPortName = LPName;
- }
- }
- foreach (var item in CarrierEDItemList)
- {
- if (item.No.Equals(No))
- {
- item.LoadPortName = LPName;
- }
- }
- foreach (var item in CarrierMItemList)
- {
- if (item.No.Equals(No))
- {
- item.LoadPortName = LPName;
- }
- }
- foreach (var item in CarrierM1ItemList)
- {
- if (item.No.Equals(No))
- {
- item.LoadPortName = LPName;
- }
- }
- foreach (var item in CarrierM2ItemList)
- {
- if (item.No.Equals(No))
- {
- item.LoadPortName = LPName;
- }
- }
- }
- public void LoadPortSelect(string StockerName, string LoadJobPara1)
- {
- string[] StockArray = LoadJobPara.Split(';');
- string para = "";
- foreach (var item in StockArray)
- {
- if (item.Contains(StockerName))
- {
- para = LoadJobPara.Replace(item + ";", LoadJobPara1);
- }
- }
- LoadJobPara = para;
- }
- public void EXECCmd(string cmdPar)
- {
- //if (!DialogBox.Confirm("Are you sure to execute?"))
- // return;
- ObservableCollection<CarrierMaterialInformation> itemList = new ObservableCollection<CarrierMaterialInformation>();
- switch (WaferType)
- {
- case "P":
- itemList = CarrierPItemList;
- break;
- case "M":
- itemList = CarrierMItemList;
- break;
- case "M1":
- itemList = CarrierM1ItemList;
- break;
- case "M2":
- itemList = CarrierM2ItemList;
- break;
- case "SD":
- itemList = CarrierSDItemList;
- break;
- case "ED":
- itemList = CarrierEDItemList;
- break;
- }
- LoadJobPara = string.Empty;
- foreach (var item in itemList)
- {
- item.CarrierId = IsAutoFillCarrierId ? item.No : item.CarrierId;
- if (!item.StockerCarrierEnable)
- continue;
- if (string.IsNullOrEmpty(item.LoadPortName))
- {
- DialogBox.ShowWarning($"Number {item.No} LoadPort is empty,please select LoadPort!");
- return;
- }
- var loadJobPara = item.ModuleName + "," + item.CarrierId + "," + item.StrSlot + "," + item.ExistSlot + "," + item.SlotMap + "," + item.LoadPortName + ";";
- if (!string.IsNullOrEmpty(LoadJobPara) && LoadJobPara.Contains(item.ModuleName))
- {
- this.LoadPortSelect(item.ModuleName, loadJobPara);
- }
- else
- LoadJobPara += loadJobPara;
- }
- if (string.IsNullOrEmpty(LoadJobPara))
- {
- DialogBox.ShowWarning("Load job parameter is empty,please select loadport number!");
- return;
- }
- //string para = "Stocker1,P_00000036,25,Exist,1111111111111111111111111,LP1;Stocker2,P_00000037,25,Exist,1111111111111111111111111,LP2";
- if (IsExecuteRTCommand && !DialogBox.Confirm("Are you sure to accept?"))
- return;
- Dictionary<string, object> param = new Dictionary<string, object>()
- {
- {"WaferType", WaferType },
- {"CarrierPara", LoadJobPara.TrimEnd(';')},
- {"TransferType", "Loading"},
- };
- if (IsExecuteRTCommand)
- {
- InvokeClient.Instance.Service.DoOperation($"System.{ExecCommand}", param);
- }
- ((Window)GetView()).DialogResult = true;
- }
- public void ClosedCmd(string cmdPar)
- {
- (GetView() as Window).Close();
- }
- }
- }
|