Files
U8API/UFIDA.U8.Framework.Api.ControlObject/Common/BEHelper.cs
T
2024-12-03 21:49:47 +08:00

146 lines
4.8 KiB
C#

using log4net;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Web.UI.WebControls;
// ReSharper disable InconsistentNaming
// ReSharper disable IdentifierTypo
// ReSharper disable StringLiteralTypo
namespace UFIDA.U8.Framework.Api.ControlObject.Common
{
public class BEHelper
{
protected readonly ILog logInfo = LogManager.GetLogger("logInfo");
private readonly dynamic _be;
private readonly PropertyInfo[] _props;
private string _invCode;
private string _free1;
private string _free2;
private string _free3;
private string _free4;
private string _free5;
private string _free6;
private string _free7;
private string _free8;
private string _free9;
private string _free10;
private int _bomVersion;
public BEHelper(dynamic be)
{
_be = be;
var tp = be.GetType();
_props = tp.GetProperties();
}
public void SetValue(Dictionary<string,object> dictionary)
{
foreach (var key in dictionary.Keys)
{
if(key != "body")
logInfo.Debug($"正在设置字段:{key}--{dictionary[key]}");
if (key.Contains("define") && !key.Contains("chdefine") && !key.Contains("cbdefine"))
{
var defineCode = int.Parse(key.Replace("define", ""));
if (dictionary.TryGetValue(key, out var bValue) && !string.IsNullOrWhiteSpace($"{bValue}"))
{
_be.UserDefinedItem[defineCode] = dictionary[key];
}
}
else if (key.Contains("chdefine"))
{
var defineCode = int.Parse(key.Replace("chdefine", ""));
if (dictionary.TryGetValue(key, out var bValue) && !string.IsNullOrWhiteSpace($"{bValue}"))
{
_be.ExtendUserDefineItem[defineCode] = dictionary[key];
}
} else if (key.Contains("cbdefine"))
{
var defineCode = int.Parse(key.Replace("cbdefine", ""));
if (dictionary.TryGetValue(key, out var bValue) && !string.IsNullOrWhiteSpace($"{bValue}"))
{
_be.ExtendUserDefineItem[defineCode] = dictionary[key];
}
}else if (key.Contains("free"))
{
var freeCode = int.Parse(key.Replace("free", ""));
SetFreeItem(freeCode, dictionary[key]);
}
else if (key != "body")
{
if (string.Equals(key, "invCode", StringComparison.OrdinalIgnoreCase))
{
_invCode = $"{dictionary[key]}";
}else if (string.Equals(key, "bomversion", StringComparison.OrdinalIgnoreCase))
{
_bomVersion = int.Parse($"{dictionary[key]}");
}
else if(!string.IsNullOrWhiteSpace($"{dictionary[key]}") && _props.Any(a => string.Equals(a.Name, key, StringComparison.OrdinalIgnoreCase)))
{
var prop = _props.First(a => string.Equals(a.Name, key, StringComparison.OrdinalIgnoreCase));
CommonHelper.SetPropValue(prop, _be, dictionary[key]);
}
}
}
}
public void SetFreeItem(int i, object value)
{
switch (i)
{
case 1:
_free1 = $"{value}";
break;
case 2:
_free2 = $"{value}";
break;
case 3:
_free3 = $"{value}";
break;
case 4:
_free4 = $"{value}";
break;
case 5:
_free5 = $"{value}";
break;
case 6:
_free6 = $"{value}";
break;
case 7:
_free7 = $"{value}";
break;
case 8:
_free8 = $"{value}";
break;
case 9:
_free9 = $"{value}";
break;
case 10:
_free10 = $"{value}";
break;
}
}
public void SetPartId()
{
_be.SetPartId(_invCode, new[] { _free1, _free2, _free3, _free4, _free5, _free6, _free7, _free8, _free9, _free10 });
}
public void SetBomId()
{
_be.SetBomId(_be.PartId, _bomVersion);
}
}
}