Sic.Framework/MECF.Framework.UI.Client/TrayThickness/TrayDataViewManager.cs

101 lines
3.5 KiB
C#
Raw Normal View History

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);
}
/// <summary>
/// 界面数据设置到数据库
/// </summary>
public bool SET()
{
List<CoatingData> coatingDataList = new List<CoatingData>()
{
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;
}
/// <summary>
/// 用户输入数据时,去数据库查询更新到界面
/// </summary>
/// <param name="obj"></param>
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);
}
}
}