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

106 lines
3.5 KiB
C#

using MECF.Framework.UI.Client.ClientBase;
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(out string reason)
{
reason = "";
// 校验托盘组件数据
if (!TrayData.Validate(out reason))
return false;
List<CoatingData> coatingDataList = new List<CoatingData>()
{
TrayData.Tray,
TrayData.TrayInner,
TrayData.RingInner,
TrayData.RingOuter
};
//检查单个环对象是否存在空数据
foreach (var item in coatingDataList)
{
if (item.GetType().GetProperties()
.Where(pi => pi.PropertyType == typeof(string))
.Select(pi => (string)pi.GetValue(item))
.Any(string.IsNullOrEmpty))
{
reason = $"Please check empty value";
return false;
}
}
var ret = trayDataHelp.UpTrayNumberData(TrayData, TrayID, coatingDataList);
if (!ret)
reason = "Failed to write tray Info. to database.";
return ret;
}
/// <summary>
/// 用户输入数据时,去数据库查询更新到界面
/// </summary>
/// <param name="part"></param>
public void LoadCoatingData(string part)
{
switch (part)
{
case "Tray":
ForUpCoatingData(TrayData.Tray.SerialNumber, TrayData.Tray);
break;
case "TrayInner":
ForUpCoatingData(TrayData.TrayInner.SerialNumber, TrayData.TrayInner);
break;
case "RingInner":
ForUpCoatingData(TrayData.RingInner.SerialNumber, TrayData.RingInner);
break;
case "RingOuter":
ForUpCoatingData(TrayData.RingOuter.SerialNumber, TrayData.RingOuter);
break;
default:
break;
}
}
private void ForUpCoatingData(string number, CoatingData data)
{
var coatingData = trayDataHelp.GetCoatingData(number, out var isExistedInDb);
if (isExistedInDb)
{
data.Update(coatingData);
}
}
}
}