SelectMaterialViewModel.cs 37 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860
  1. using Aitex.Core.Util;
  2. using Caliburn.Micro.Core;
  3. using FurnaceUI.Common;
  4. using FurnaceUI.Models;
  5. using MECF.Framework.Common.DataCenter;
  6. using MECF.Framework.Common.SubstrateTrackings;
  7. using MECF.Framework.UI.Client.ClientBase;
  8. using System;
  9. using System.Collections.Generic;
  10. using System.Collections.ObjectModel;
  11. using System.Linq;
  12. using System.Text;
  13. using System.Threading.Tasks;
  14. using System.Windows;
  15. using Aitex.Core.RT.Log;
  16. using Caliburn.Micro;
  17. namespace FurnaceUI.Views.Jobs
  18. {
  19. public class CarrierMaterialInformation : PropertyChangedBase
  20. {
  21. private string _no;
  22. public string No
  23. {
  24. get
  25. {
  26. return _no;
  27. }
  28. set
  29. {
  30. _no = value;
  31. NotifyOfPropertyChange("No");
  32. }
  33. }
  34. private string _moduleName;
  35. public string ModuleName
  36. {
  37. get
  38. {
  39. return _moduleName;
  40. }
  41. set
  42. {
  43. _moduleName = value;
  44. NotifyOfPropertyChange("ModuleName");
  45. }
  46. }
  47. private string _waferStauts;
  48. public string WaferStauts
  49. {
  50. get
  51. {
  52. return _waferStauts;
  53. }
  54. set
  55. {
  56. _waferStauts = value;
  57. NotifyOfPropertyChange("WaferStauts");
  58. }
  59. }
  60. private bool _stockerCarrierEnable;
  61. public bool StockerCarrierEnable
  62. {
  63. get
  64. {
  65. return _stockerCarrierEnable;
  66. }
  67. set
  68. {
  69. _stockerCarrierEnable = value;
  70. NotifyOfPropertyChange("StockerCarrierEnable");
  71. }
  72. }
  73. private bool _isSelected;
  74. public bool IsSelected
  75. {
  76. get
  77. {
  78. return _isSelected;
  79. }
  80. set
  81. {
  82. _isSelected = value;
  83. NotifyOfPropertyChange("IsSelected");
  84. }
  85. }
  86. private string _carrierType;
  87. public string CarrierType
  88. {
  89. get
  90. {
  91. return _carrierType;
  92. }
  93. set
  94. {
  95. _carrierType = value;
  96. NotifyOfPropertyChange("CarrierType");
  97. }
  98. }
  99. private string _carrierId;
  100. public string CarrierId
  101. {
  102. get
  103. {
  104. return _carrierId;
  105. }
  106. set
  107. {
  108. _carrierId = value;
  109. NotifyOfPropertyChange("CarrierId");
  110. }
  111. }
  112. private string _waferCount;
  113. public string WaferCount
  114. {
  115. get
  116. {
  117. return _waferCount;
  118. }
  119. set
  120. {
  121. _waferCount = value;
  122. NotifyOfPropertyChange("WaferCount");
  123. }
  124. }
  125. private DateTime _loadTime;
  126. public DateTime LoadTime
  127. {
  128. get
  129. {
  130. return _loadTime;
  131. }
  132. set
  133. {
  134. _loadTime = value;
  135. NotifyOfPropertyChange("LoadTime");
  136. }
  137. }
  138. private string _operatorName;
  139. public string OperatorName
  140. {
  141. get
  142. {
  143. return _operatorName;
  144. }
  145. set
  146. {
  147. _operatorName = value;
  148. NotifyOfPropertyChange("OperatorName");
  149. }
  150. }
  151. private string _slotMap;
  152. public string SlotMap
  153. {
  154. get => _slotMap;
  155. set
  156. {
  157. _slotMap = value;
  158. NotifyOfPropertyChange(nameof(SlotMap));
  159. }
  160. }
  161. public Aitex.Core.Common.WaferInfo[] Wafers { get; set; }
  162. private string _strSlot;
  163. public string StrSlot
  164. {
  165. get => _strSlot;
  166. set
  167. {
  168. _strSlot = value;
  169. NotifyOfPropertyChange(nameof(StrSlot));
  170. }
  171. }
  172. private string _existSlot;
  173. public string ExistSlot
  174. {
  175. get => _existSlot;
  176. set
  177. {
  178. _existSlot = value;
  179. NotifyOfPropertyChange(nameof(ExistSlot));
  180. }
  181. }
  182. private string _loadPortName;
  183. public string LoadPortName
  184. {
  185. get => _loadPortName;
  186. set
  187. {
  188. _loadPortName = value;
  189. if ("LP1" == value)
  190. {
  191. IsLoadLP1 = true;
  192. IsLoadLP2 = false;
  193. }
  194. else if ("LP2" == value)
  195. {
  196. IsLoadLP1 = false;
  197. IsLoadLP2 = true;
  198. }
  199. else
  200. {
  201. IsLoadLP1 = true;
  202. IsLoadLP2 = true;
  203. }
  204. NotifyOfPropertyChange(nameof(LoadPortName));
  205. }
  206. }
  207. private bool _isLoadLP1;
  208. public bool IsLoadLP1
  209. {
  210. get => _isLoadLP1;
  211. set
  212. {
  213. _isLoadLP1 = value;
  214. NotifyOfPropertyChange(nameof(IsLoadLP1));
  215. }
  216. }
  217. private bool _isLoadLP2;
  218. public bool IsLoadLP2
  219. {
  220. get => _isLoadLP2;
  221. set
  222. {
  223. _isLoadLP2 = value;
  224. NotifyOfPropertyChange(nameof(IsLoadLP2));
  225. }
  226. }
  227. }
  228. public class SelectMaterialViewModel : FurnaceModuleUIViewModelBase
  229. {
  230. public string CarrierType { get; set; }
  231. public ObservableCollection<CarrierMaterialInformation> CarrierItemList { get; set; } = new ObservableCollection<CarrierMaterialInformation>();
  232. public ObservableCollection<CarrierMaterialInformation> SelectCarrierItemList { get; set; } = new ObservableCollection<CarrierMaterialInformation>();
  233. [Subscription("Stocker1.LotID")]
  234. public string Stocker1LotID { get; set; }
  235. [Subscription("Stocker2.LotID")]
  236. public string Stocker2LotID { get; set; }
  237. [Subscription("Stocker3.LotID")]
  238. public string Stocker3LotID { get; set; }
  239. [Subscription("Stocker4.LotID")]
  240. public string Stocker4LotID { get; set; }
  241. [Subscription("Stocker5.LotID")]
  242. public string Stocker5LotID { get; set; }
  243. [Subscription("Stocker6.LotID")]
  244. public string Stocker6LotID { get; set; }
  245. [Subscription("Stocker7.LotID")]
  246. public string Stocker7LotID { get; set; }
  247. [Subscription("Stocker8.LotID")]
  248. public string Stocker8LotID { get; set; }
  249. [Subscription("Stocker9.LotID")]
  250. public string Stocker9LotID { get; set; }
  251. [Subscription("Stocker10.LotID")]
  252. public string Stocker10LotID { get; set; }
  253. [Subscription("Stocker11.LotID")]
  254. public string Stocker11LotID { get; set; }
  255. [Subscription("Stocker12.LotID")]
  256. public string Stocker12LotID { get; set; }
  257. [Subscription("Stocker13.LotID")]
  258. public string Stocker13LotID { get; set; }
  259. [Subscription("Stocker14.LotID")]
  260. public string Stocker14LotID { get; set; }
  261. [Subscription("Stocker15.LotID")]
  262. public string Stocker15LotID { get; set; }
  263. [Subscription("Stocker16.LotID")]
  264. public string Stocker16LotID { get; set; }
  265. [Subscription("Stocker17.LotID")]
  266. public string Stocker17LotID { get; set; }
  267. [Subscription("Stocker18.LotID")]
  268. public string Stocker18LotID { get; set; }
  269. public int Stocker1WaferCount { get; set; } = 0;
  270. public int Stocker2WaferCount { get; set; } = 0;
  271. public int Stocker3WaferCount { get; set; } = 0;
  272. public int Stocker4WaferCount { get; set; } = 0;
  273. public int Stocker5WaferCount { get; set; } = 0;
  274. public int Stocker6WaferCount { get; set; } = 0;
  275. public int Stocker7WaferCount { get; set; } = 0;
  276. public int Stocker8WaferCount { get; set; } = 0;
  277. public int Stocker9WaferCount { get; set; } = 0;
  278. public int Stocker10WaferCount { get; set; } = 0;
  279. public int Stocker11WaferCount { get; set; } = 0;
  280. public int Stocker12WaferCount { get; set; } = 0;
  281. public int Stocker14WaferCount { get; set; } = 0;
  282. public int Stocker15WaferCount { get; set; } = 0;
  283. public List<CarrierInfo> carrierlist { get; set; }
  284. public int pointP1Count { get; set; }
  285. public int pointP2Count { get; set; }
  286. public int pointP3Count { get; set; }
  287. public int pointP4Count { get; set; }
  288. public int pointP5Count { get; set; }
  289. public int pointP6Count { get; set; }
  290. public int pointP7Count { get; set; }
  291. public int pointP8Count { get; set; }
  292. public int pointP9Count { get; set; }
  293. public int pointP10Count { get; set; }
  294. public int pointP11Count { get; set; }
  295. public int pointP12Count { get; set; }
  296. public int pointP13Count { get; set; }
  297. public int pointP14Count { get; set; }
  298. public int pointP15Count { get; set; }
  299. public int pointP16Count { get; set; }
  300. public int pointP17Count { get; set; }
  301. public int pointP18Count { get; set; }
  302. public int pointM1Count { get; set; }
  303. public int pointM2Count { get; set; }
  304. public int pointM3Count { get; set; }
  305. public int pointM4Count { get; set; }
  306. public int pointM5Count { get; set; }
  307. public int pointM6Count { get; set; }
  308. public int pointM7Count { get; set; }
  309. public int pointM8Count { get; set; }
  310. public int pointM9Count { get; set; }
  311. public int pointM10Count { get; set; }
  312. public int pointM11Count { get; set; }
  313. public int pointM12Count { get; set; }
  314. public int pointM13Count { get; set; }
  315. public int pointM14Count { get; set; }
  316. public int pointM15Count { get; set; }
  317. public int pointM16Count { get; set; }
  318. public int pointM17Count { get; set; }
  319. public int pointM18Count { get; set; }
  320. public string LoadPJobPara { get; set; }
  321. public SelectMaterialViewModel()
  322. {
  323. }
  324. protected override void OnActivate()
  325. {
  326. base.OnActivate();
  327. CheckChanged(CarrierType);
  328. }
  329. string[] moduleNames = new string[] { "Stocker1", "Stocker2", "Stocker3", "Stocker4", "Stocker5", "Stocker6", "Stocker7", "Stocker8", "Stocker9", "Stocker10", "Stocker11", "Stocker12", "Stocker14", "Stocker15" };
  330. protected override void InvokeAfterUpdateProperty(Dictionary<string, object> data)
  331. {
  332. base.InvokeAfterUpdateProperty(data);
  333. foreach (var item in moduleNames)
  334. {
  335. if (ModuleManager.ModuleInfos.ContainsKey(item))
  336. {
  337. this.GetType().GetProperty($"{item}WaferCount").SetValue(this, ModuleManager.ModuleInfos[item].WaferManager.Wafers.Where(x => x.WaferStatus != 0).Count());
  338. }
  339. }
  340. }
  341. public void CheckChanged(string type)
  342. {
  343. try
  344. {
  345. CarrierItemList.Clear();
  346. switch (type)
  347. {
  348. case "P":
  349. for (int i = 0; i < carrierlist.Count; i++)
  350. {
  351. if (!(bool)QueryDataClient.Instance.Service.GetConfig($"System.SetUp.IsStocker{carrierlist[i].StockerIndex}Installed")) continue;
  352. CarrierMaterialInformation carrierInfo = new CarrierMaterialInformation();
  353. carrierInfo.No = carrierlist[i].StockerIndex.ToString();
  354. carrierInfo.ModuleName = $"Stocker{carrierlist[i].StockerIndex}";
  355. if (carrierlist[i].IsMapped)
  356. {
  357. carrierInfo.SlotMap = string.Join("", carrierlist[i].Wafers.Select(x => Convert.ToInt16(x.Status).ToString()).ToArray());
  358. }
  359. carrierInfo.Wafers = carrierlist[i].Wafers;
  360. carrierInfo.CarrierType = carrierlist[i].CarrierType.ToString();
  361. carrierInfo.CarrierId = carrierlist[i].CarrierId;
  362. string tempStr = string.Empty;
  363. var stockerUseSlots = QueryDataClient.Instance.Service.GetData("Scheduler.StockerUseSlots") as Dictionary<string, string>;
  364. if (stockerUseSlots != null)
  365. {
  366. if (stockerUseSlots.TryGetValue(carrierInfo.ModuleName, out string tempValue))
  367. {
  368. tempStr = tempValue;
  369. }
  370. }
  371. if (ModuleManager.ModuleInfos.ContainsKey(carrierlist[i].InternalModuleName.ToString()))
  372. {
  373. var tempList = ModuleManager.ModuleInfos[carrierlist[i].InternalModuleName.ToString()].WaferManager.Wafers.Where(x => x.WaferStatus != 0).ToList();
  374. carrierInfo.WaferCount = tempList.Count().ToString();
  375. foreach (var item in tempList)
  376. {
  377. var tempWafer = carrierlist[i].Wafers.Where(p => p.WaferID == item.SlotIndex.ToString()).FirstOrDefault();
  378. if (tempWafer != null && item.WaferStatus == 1 && !tempStr.Split(',').Contains(item.SlotID.ToString()))
  379. {
  380. tempWafer.Status = Aitex.Core.Common.WaferStatus.Normal;
  381. }
  382. }
  383. }
  384. carrierInfo.LoadTime = carrierlist[i].LoadTime;
  385. carrierInfo.OperatorName = "admin";
  386. carrierInfo.Wafers = carrierlist[i].Wafers;
  387. var carrier = SelectCarrierItemList.Where(x => x.ModuleName == carrierInfo.ModuleName && x.CarrierId == carrierInfo.CarrierId).FirstOrDefault();
  388. if (carrier != null)
  389. {
  390. carrierInfo.StrSlot = carrier.StrSlot;
  391. carrierInfo.IsSelected = true;
  392. this.GetType().GetProperty($"pointP{carrierlist[i].StockerIndex.ToString()}Count").SetValue(this, 1);
  393. }
  394. else
  395. {
  396. carrierInfo.IsSelected = false;
  397. this.GetType().GetProperty($"pointP{carrierlist[i].StockerIndex.ToString()}Count").SetValue(this, 0);
  398. }
  399. CarrierItemList.Add(carrierInfo);
  400. }
  401. break;
  402. case "M":
  403. for (int i = 0; i < carrierlist.Count; i++)
  404. {
  405. if (!(bool)QueryDataClient.Instance.Service.GetConfig($"System.SetUp.IsStocker{carrierlist[i].StockerIndex}Installed")) continue;
  406. CarrierMaterialInformation carrierInfo = new CarrierMaterialInformation();
  407. carrierInfo.No = carrierlist[i].StockerIndex.ToString();
  408. carrierInfo.ModuleName = $"Stocker{carrierlist[i].StockerIndex}";
  409. carrierInfo.CarrierType = carrierlist[i].CarrierType.ToString();
  410. carrierInfo.CarrierId = carrierlist[i].CarrierId;
  411. string tempStr = string.Empty;
  412. var stockerUseSlots = QueryDataClient.Instance.Service.GetData("Scheduler.StockerUseSlots") as Dictionary<string, string>;
  413. if (stockerUseSlots != null)
  414. {
  415. if (stockerUseSlots.TryGetValue(carrierInfo.ModuleName, out string tempValue))
  416. {
  417. tempStr = tempValue;
  418. }
  419. }
  420. if (ModuleManager.ModuleInfos.ContainsKey(carrierlist[i].InternalModuleName.ToString()))
  421. {
  422. var tempList = ModuleManager.ModuleInfos[carrierlist[i].InternalModuleName.ToString()].WaferManager.Wafers.Where(x => x.WaferStatus != 0).ToList();
  423. carrierInfo.WaferCount = tempList.Count().ToString();
  424. foreach (var item in tempList)
  425. {
  426. var tempWafer = carrierlist[i].Wafers.Where(p => p.WaferID == item.SlotIndex.ToString()).FirstOrDefault();
  427. if (tempWafer != null && item.WaferStatus == 1 && !tempStr.Split(',').Contains(item.SlotID.ToString()))
  428. {
  429. tempWafer.Status = Aitex.Core.Common.WaferStatus.Normal;
  430. }
  431. }
  432. }
  433. carrierInfo.LoadTime = carrierlist[i].LoadTime;
  434. carrierInfo.OperatorName = "admin";
  435. carrierInfo.Wafers = carrierlist[i].Wafers;
  436. var carrier = SelectCarrierItemList.Where(x => x.ModuleName == carrierInfo.ModuleName && x.CarrierId == carrierInfo.CarrierId).FirstOrDefault();
  437. if (carrier != null)
  438. {
  439. carrierInfo.IsSelected = true;
  440. carrierInfo.StrSlot = carrier.StrSlot;
  441. this.GetType().GetProperty($"pointM{carrierlist[i].StockerIndex}Count").SetValue(this, 1);
  442. }
  443. else
  444. {
  445. carrierInfo.IsSelected = false;
  446. this.GetType().GetProperty($"pointM{carrierlist[i].StockerIndex}Count").SetValue(this, 0);
  447. }
  448. CarrierItemList.Add(carrierInfo);
  449. }
  450. break;
  451. }
  452. }
  453. catch (Exception e)
  454. {
  455. LOG.Error($"SelectMaterialViewModel e:{e.Message}");
  456. throw;
  457. }
  458. }
  459. public void EditCarrierID(string type, string no)
  460. {
  461. var windowManager = IoC.Get<IWindowManager>();
  462. WaferMapSelectedViewModel waferMapSelectedViewModel = new WaferMapSelectedViewModel();
  463. waferMapSelectedViewModel.WaferType = type;
  464. waferMapSelectedViewModel.WaferNo = no;
  465. CarrierMaterialInformation carr = null;
  466. switch (type)
  467. {
  468. case "P":
  469. carr = CarrierItemList.FirstOrDefault(x => x.No == no);
  470. break;
  471. case "SD":
  472. carr = CarrierItemList.FirstOrDefault(x => x.No == no);
  473. break;
  474. case "ED":
  475. carr = CarrierItemList.FirstOrDefault(x => x.No == no);
  476. break;
  477. case "M1":
  478. carr = CarrierItemList.FirstOrDefault(x => x.No == no);
  479. break;
  480. case "M2":
  481. carr = CarrierItemList.FirstOrDefault(x => x.No == no);
  482. break;
  483. default:
  484. break;
  485. }
  486. if (carr == null)
  487. return;
  488. waferMapSelectedViewModel.StrSlots = carr.StrSlot;
  489. waferMapSelectedViewModel.Wafers = carr.Wafers;
  490. waferMapSelectedViewModel.CarrierID = carr.CarrierId;
  491. if ((bool)(windowManager as WindowManager)?.ShowDialogWithTitle(waferMapSelectedViewModel, null, "Wafer Map"))
  492. {
  493. carr.CarrierId = waferMapSelectedViewModel.CarrierID;
  494. carr.WaferCount = waferMapSelectedViewModel.WaferCount;
  495. carr.SlotMap = waferMapSelectedViewModel.SlotMap;
  496. carr.StrSlot = waferMapSelectedViewModel.StrSlots;
  497. carr.ExistSlot = waferMapSelectedViewModel.IsExistChecked ? "Exist" : "None";
  498. int count = 0;
  499. int.TryParse(waferMapSelectedViewModel.WaferCount, out count);
  500. if (count != 0)
  501. {
  502. carr.IsSelected = true;
  503. }
  504. else
  505. {
  506. carr.IsSelected = false;
  507. }
  508. }
  509. else
  510. {
  511. carr.IsSelected = false;
  512. }
  513. }
  514. //public void EditCarrierID(string type, string no)
  515. //{
  516. // if (type == "P" || type == "None")
  517. // {
  518. // switch (no)
  519. // {
  520. // case "1":
  521. // pointP1Count++;
  522. // if (pointP1Count % 2 == 0)
  523. // CarrierItemList.Where(s => s.No == "1").FirstOrDefault().IsSelected = false;
  524. // else
  525. // CarrierItemList.Where(s => s.No == "1").FirstOrDefault().IsSelected = true;
  526. // break;
  527. // case "2":
  528. // pointP2Count++;
  529. // if (pointP2Count % 2 == 0)
  530. // CarrierItemList.Where(s => s.No == "2").FirstOrDefault().IsSelected = false;
  531. // else
  532. // CarrierItemList.Where(s => s.No == "2").FirstOrDefault().IsSelected = true;
  533. // break;
  534. // case "3":
  535. // pointP3Count++;
  536. // if (pointP3Count % 2 == 0)
  537. // CarrierItemList.Where(s => s.No == "3").FirstOrDefault().IsSelected = false;
  538. // else
  539. // CarrierItemList.Where(s => s.No == "3").FirstOrDefault().IsSelected = true;
  540. // break;
  541. // case "4":
  542. // pointP4Count++;
  543. // if (pointP4Count % 2 == 0)
  544. // CarrierItemList.Where(s => s.No == "4").FirstOrDefault().IsSelected = false;
  545. // else
  546. // CarrierItemList.Where(s => s.No == "4").FirstOrDefault().IsSelected = true;
  547. // break;
  548. // case "5":
  549. // pointP5Count++;
  550. // if (pointP5Count % 2 == 0)
  551. // CarrierItemList.Where(s => s.No == "5").FirstOrDefault().IsSelected = false;
  552. // else
  553. // CarrierItemList.Where(s => s.No == "5").FirstOrDefault().IsSelected = true;
  554. // break;
  555. // case "6":
  556. // pointP6Count++;
  557. // if (pointP6Count % 2 == 0)
  558. // CarrierItemList.Where(s => s.No == "6").FirstOrDefault().IsSelected = false;
  559. // else
  560. // CarrierItemList.Where(s => s.No == "6").FirstOrDefault().IsSelected = true;
  561. // break;
  562. // case "7":
  563. // pointP7Count++;
  564. // if (pointP7Count % 2 == 0)
  565. // CarrierItemList.Where(s => s.No == "7").FirstOrDefault().IsSelected = false;
  566. // else
  567. // CarrierItemList.Where(s => s.No == "7").FirstOrDefault().IsSelected = true;
  568. // break;
  569. // case "8":
  570. // pointP8Count++;
  571. // if (pointP8Count % 2 == 0)
  572. // CarrierItemList.Where(s => s.No == "8").FirstOrDefault().IsSelected = false;
  573. // else
  574. // CarrierItemList.Where(s => s.No == "8").FirstOrDefault().IsSelected = true;
  575. // break;
  576. // case "9":
  577. // pointP9Count++;
  578. // if (pointP9Count % 2 == 0)
  579. // CarrierItemList.Where(s => s.No == "9").FirstOrDefault().IsSelected = false;
  580. // else
  581. // CarrierItemList.Where(s => s.No == "9").FirstOrDefault().IsSelected = true;
  582. // break;
  583. // case "10":
  584. // pointP10Count++;
  585. // if (pointP10Count % 2 == 0)
  586. // CarrierItemList.Where(s => s.No == "10").FirstOrDefault().IsSelected = false;
  587. // else
  588. // CarrierItemList.Where(s => s.No == "10").FirstOrDefault().IsSelected = true;
  589. // break;
  590. // case "11":
  591. // pointP11Count++;
  592. // if (pointP11Count % 2 == 0)
  593. // CarrierItemList.Where(s => s.No == "11").FirstOrDefault().IsSelected = false;
  594. // else
  595. // CarrierItemList.Where(s => s.No == "11").FirstOrDefault().IsSelected = true;
  596. // break;
  597. // case "12":
  598. // pointP12Count++;
  599. // if (pointP12Count % 2 == 0)
  600. // CarrierItemList.Where(s => s.No == "12").FirstOrDefault().IsSelected = false;
  601. // else
  602. // CarrierItemList.Where(s => s.No == "12").FirstOrDefault().IsSelected = true;
  603. // break;
  604. // case "13":
  605. // pointP13Count++;
  606. // if (pointP13Count % 2 == 0)
  607. // CarrierItemList.Where(s => s.No == "13").FirstOrDefault().IsSelected = false;
  608. // else
  609. // CarrierItemList.Where(s => s.No == "13").FirstOrDefault().IsSelected = true;
  610. // break;
  611. // case "14":
  612. // pointP14Count++;
  613. // if (pointP14Count % 2 == 0)
  614. // CarrierItemList.Where(s => s.No == "14").FirstOrDefault().IsSelected = false;
  615. // else
  616. // CarrierItemList.Where(s => s.No == "14").FirstOrDefault().IsSelected = true;
  617. // break;
  618. // case "15":
  619. // pointP15Count++;
  620. // if (pointP15Count % 2 == 0)
  621. // CarrierItemList.Where(s => s.No == "15").FirstOrDefault().IsSelected = false;
  622. // else
  623. // CarrierItemList.Where(s => s.No == "15").FirstOrDefault().IsSelected = true;
  624. // break;
  625. // case "16":
  626. // pointP16Count++;
  627. // if (pointP16Count % 2 == 0)
  628. // CarrierItemList.Where(s => s.No == "16").FirstOrDefault().IsSelected = false;
  629. // else
  630. // CarrierItemList.Where(s => s.No == "16").FirstOrDefault().IsSelected = true;
  631. // break;
  632. // case "17":
  633. // pointP17Count++;
  634. // if (pointP17Count % 2 == 0)
  635. // CarrierItemList.Where(s => s.No == "17").FirstOrDefault().IsSelected = false;
  636. // else
  637. // CarrierItemList.Where(s => s.No == "17").FirstOrDefault().IsSelected = true;
  638. // break;
  639. // case "18":
  640. // pointP18Count++;
  641. // if (pointP18Count % 2 == 0)
  642. // CarrierItemList.Where(s => s.No == "18").FirstOrDefault().IsSelected = false;
  643. // else
  644. // CarrierItemList.Where(s => s.No == "18").FirstOrDefault().IsSelected = true;
  645. // break;
  646. // default:
  647. // break;
  648. // }
  649. // }
  650. // else if (type.StartsWith(ConstantsCommon.M) || type == "None")
  651. // {
  652. // switch (no)
  653. // {
  654. // case "1":
  655. // pointM1Count++;
  656. // if (pointM1Count % 2 == 0)
  657. // CarrierItemList.Where(s => s.No == "1").FirstOrDefault().IsSelected = false;
  658. // else
  659. // CarrierItemList.Where(s => s.No == "1").FirstOrDefault().IsSelected = true;
  660. // break;
  661. // case "2":
  662. // pointM2Count++;
  663. // if (pointM2Count % 2 == 0)
  664. // CarrierItemList.Where(s => s.No == "2").FirstOrDefault().IsSelected = false;
  665. // else
  666. // CarrierItemList.Where(s => s.No == "2").FirstOrDefault().IsSelected = true;
  667. // break;
  668. // case "3":
  669. // pointM3Count++;
  670. // if (pointM3Count % 2 == 0)
  671. // CarrierItemList.Where(s => s.No == "3").FirstOrDefault().IsSelected = false;
  672. // else
  673. // CarrierItemList.Where(s => s.No == "3").FirstOrDefault().IsSelected = true;
  674. // break;
  675. // case "4":
  676. // pointM4Count++;
  677. // if (pointM4Count % 2 == 0)
  678. // CarrierItemList.Where(s => s.No == "4").FirstOrDefault().IsSelected = false;
  679. // else
  680. // CarrierItemList.Where(s => s.No == "4").FirstOrDefault().IsSelected = true;
  681. // break;
  682. // case "5":
  683. // pointM5Count++;
  684. // if (pointM5Count % 2 == 0)
  685. // CarrierItemList.Where(s => s.No == "5").FirstOrDefault().IsSelected = false;
  686. // else
  687. // CarrierItemList.Where(s => s.No == "5").FirstOrDefault().IsSelected = true;
  688. // break;
  689. // case "6":
  690. // pointM6Count++;
  691. // if (pointM6Count % 2 == 0)
  692. // CarrierItemList.Where(s => s.No == "6").FirstOrDefault().IsSelected = false;
  693. // else
  694. // CarrierItemList.Where(s => s.No == "6").FirstOrDefault().IsSelected = true;
  695. // break;
  696. // case "7":
  697. // pointM7Count++;
  698. // if (pointM7Count % 2 == 0)
  699. // CarrierItemList.Where(s => s.No == "7").FirstOrDefault().IsSelected = false;
  700. // else
  701. // CarrierItemList.Where(s => s.No == "7").FirstOrDefault().IsSelected = true;
  702. // break;
  703. // case "8":
  704. // pointM8Count++;
  705. // if (pointM8Count % 2 == 0)
  706. // CarrierItemList.Where(s => s.No == "8").FirstOrDefault().IsSelected = false;
  707. // else
  708. // CarrierItemList.Where(s => s.No == "8").FirstOrDefault().IsSelected = true;
  709. // break;
  710. // case "9":
  711. // pointM9Count++;
  712. // if (pointM9Count % 2 == 0)
  713. // CarrierItemList.Where(s => s.No == "9").FirstOrDefault().IsSelected = false;
  714. // else
  715. // CarrierItemList.Where(s => s.No == "9").FirstOrDefault().IsSelected = true;
  716. // break;
  717. // case "10":
  718. // pointM10Count++;
  719. // if (pointM10Count % 2 == 0)
  720. // CarrierItemList.Where(s => s.No == "10").FirstOrDefault().IsSelected = false;
  721. // else
  722. // CarrierItemList.Where(s => s.No == "10").FirstOrDefault().IsSelected = true;
  723. // break;
  724. // case "11":
  725. // pointM11Count++;
  726. // if (pointM11Count % 2 == 0)
  727. // CarrierItemList.Where(s => s.No == "11").FirstOrDefault().IsSelected = false;
  728. // else
  729. // CarrierItemList.Where(s => s.No == "11").FirstOrDefault().IsSelected = true;
  730. // break;
  731. // case "12":
  732. // pointM12Count++;
  733. // if (pointM12Count % 2 == 0)
  734. // CarrierItemList.Where(s => s.No == "12").FirstOrDefault().IsSelected = false;
  735. // else
  736. // CarrierItemList.Where(s => s.No == "12").FirstOrDefault().IsSelected = true;
  737. // break;
  738. // case "13":
  739. // pointM13Count++;
  740. // if (pointM13Count % 2 == 0)
  741. // CarrierItemList.Where(s => s.No == "13").FirstOrDefault().IsSelected = false;
  742. // else
  743. // CarrierItemList.Where(s => s.No == "13").FirstOrDefault().IsSelected = true;
  744. // break;
  745. // case "14":
  746. // pointM14Count++;
  747. // if (pointM14Count % 2 == 0)
  748. // CarrierItemList.Where(s => s.No == "14").FirstOrDefault().IsSelected = false;
  749. // else
  750. // CarrierItemList.Where(s => s.No == "14").FirstOrDefault().IsSelected = true;
  751. // break;
  752. // case "15":
  753. // pointM15Count++;
  754. // if (pointM15Count % 2 == 0)
  755. // CarrierItemList.Where(s => s.No == "15").FirstOrDefault().IsSelected = false;
  756. // else
  757. // CarrierItemList.Where(s => s.No == "15").FirstOrDefault().IsSelected = true;
  758. // break;
  759. // case "16":
  760. // pointM16Count++;
  761. // if (pointM16Count % 2 == 0)
  762. // CarrierItemList.Where(s => s.No == "16").FirstOrDefault().IsSelected = false;
  763. // else
  764. // CarrierItemList.Where(s => s.No == "16").FirstOrDefault().IsSelected = true;
  765. // break;
  766. // case "17":
  767. // pointM17Count++;
  768. // if (pointM17Count % 2 == 0)
  769. // CarrierItemList.Where(s => s.No == "17").FirstOrDefault().IsSelected = false;
  770. // else
  771. // CarrierItemList.Where(s => s.No == "17").FirstOrDefault().IsSelected = true;
  772. // break;
  773. // case "18":
  774. // pointM18Count++;
  775. // if (pointM18Count % 2 == 0)
  776. // CarrierItemList.Where(s => s.No == "18").FirstOrDefault().IsSelected = false;
  777. // else
  778. // CarrierItemList.Where(s => s.No == "18").FirstOrDefault().IsSelected = true;
  779. // break;
  780. // default:
  781. // break;
  782. // }
  783. // }
  784. //}
  785. public void EXECCmd()
  786. {
  787. SelectCarrierItemList.Clear();
  788. foreach (CarrierMaterialInformation item in CarrierItemList)
  789. {
  790. if (item.IsSelected)
  791. SelectCarrierItemList.Add(item);
  792. }
  793. ((Window)GetView()).DialogResult = true;
  794. }
  795. public void ClosedCmd()
  796. {
  797. (GetView() as Window).Close();
  798. }
  799. }
  800. }