using MECF.Framework.UI.Client.ClientBase; using MECF.Framework.UI.Core.TrayCoating; using OpenSEMI.ClientBase; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; namespace MECF.Framework.UI.Client.TrayThickness { public class TrayDataViewManager { TrayCoatingThickness TrayData; TrayDataViewSqlHelp trayDataHelp = new TrayDataViewSqlHelp(); private string TrayID; public TrayDataViewManager(TrayCoatingThickness trayData, string trayID) { TrayData = trayData; TrayID = trayID; } public void UpTrayCoatingThickness() { TrayCoatingThickness _trayCoatingThickness = trayDataHelp.GetTrayCoatingThickness(TrayID); TrayData.Tray.Update(_trayCoatingThickness.Tray); TrayData.TrayInner.Update(_trayCoatingThickness.TrayInner); TrayData.RingInner.Update(_trayCoatingThickness.RingInner); TrayData.RingOuter.Update(_trayCoatingThickness.RingOuter); } /// /// 界面数据设置到数据库 /// public bool SET() { List coatingDataList = new List() { TrayData.Tray, TrayData.TrayInner, TrayData.RingInner, TrayData.RingOuter }; //每个环Number数据是否存在相同,Linq语句检查 if (coatingDataList.GroupBy(i => i.Number).Where(g => g.Count() > 1).Count() > 0) { DialogBox.ShowInfo($"Duplicated serial numbers detected, please check"); return false; } //检查单个环对象是否存在空数据 foreach (var item in coatingDataList) { if (item.GetType().GetProperties() .Where(pi => pi.PropertyType == typeof(string)) .Select(pi => (string)pi.GetValue(item)) .Any(value => string.IsNullOrEmpty(value))) { DialogBox.ShowInfo($"Please check empty value"); return false; } } trayDataHelp.UpTrayNumberData(TrayData, TrayID, coatingDataList); return true; } /// /// 用户输入数据时,去数据库查询更新到界面 /// /// public void UpCoatingData(string obj) { switch (obj) { case "Tray": ForUpCoatingData(TrayData.Tray.Number, TrayData.Tray); break; case "TrayInner": ForUpCoatingData(TrayData.TrayInner.Number, TrayData.TrayInner); break; case "RingInner": ForUpCoatingData(TrayData.RingInner.Number, TrayData.RingInner); break; case "RingOuter": ForUpCoatingData(TrayData.RingOuter.Number, TrayData.RingOuter); break; default: break; } } private void ForUpCoatingData(string number, CoatingData _coatingData) { CoatingData coatingData = trayDataHelp.GetCoatingData(number, out bool isGetData); if (isGetData) _coatingData.Update(coatingData); } } }