using Kingdee.BOS.Orm.DataEntity;
|
using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
|
namespace XhOA.Extension
|
{
|
public static class KDExtension
|
{
|
/// <summary>
|
/// 获取一级值 可用于获取文本、数组
|
/// </summary>
|
/// <param name="dynamicObject"></param>
|
/// <param name="key"></param>
|
/// <returns></returns>
|
public static object GetValue(this DynamicObject dynamicObject, string propertyName)
|
{
|
return dynamicObject[propertyName];
|
}
|
/// <summary>
|
/// 获取一级基础资料或单据体对象
|
/// </summary>
|
/// <typeparam name="T"></typeparam>
|
/// <param name="dynamicObject"></param>
|
/// <param name="key"></param>
|
/// <returns></returns>
|
public static T GetValue<T>(this DynamicObject dynamicObject, string propertyName)
|
{
|
var value = dynamicObject.GetValue(propertyName);
|
if (value != null)
|
{
|
return (T)Convert.ChangeType(value, typeof(T));
|
}
|
return default(T);
|
}
|
/// <summary>
|
/// 获取基础资料的属性
|
/// </summary>
|
/// <param name="dynamicObject"></param>
|
/// <param name="dataBaseKey"></param>
|
/// <param name="propertyName"></param>
|
/// <returns></returns>
|
public static object GetDataBaseProperty(this DynamicObject dynamicObject, string dataBaseKey, string propertyName)
|
{
|
var dataBase = dynamicObject.GetValue<DynamicObject>(dataBaseKey);
|
if (dataBase != null)
|
{
|
return dataBase.GetValue(propertyName);
|
}
|
return null;
|
}
|
|
public static T GetDataBaseProperty<T>(this DynamicObject dynamicObject, string dataBaseKey, string propertyName)
|
{
|
var dataBase = dynamicObject.GetValue<DynamicObject>(dataBaseKey);
|
if (dataBase != null)
|
{
|
var value = dataBase.GetValue(propertyName);
|
return (T)Convert.ChangeType(value, typeof(T));
|
}
|
return default(T);
|
}
|
|
/// <summary>
|
/// 获取基础资料的编码
|
/// </summary>
|
/// <param name="dynamicObject"></param>
|
/// <param name="dataBaseKey"></param>
|
/// <returns></returns>
|
public static object GetDataBaseNumber(this DynamicObject dynamicObject, string dataBaseKey)
|
{
|
return dynamicObject.GetDataBaseProperty(dataBaseKey, "Number");
|
}
|
|
public static T GetDataBaseNumber<T>(this DynamicObject dynamicObject, string dataBaseKey)
|
{
|
return dynamicObject.GetDataBaseProperty<T>(dataBaseKey, "Number");
|
}
|
|
|
/// <summary>
|
/// 获取基础资料的内码
|
/// </summary>
|
/// <param name="dynamicObject"></param>
|
/// <param name="dataBaseKey"></param>
|
/// <returns></returns>
|
public static object GetDataBaseId(this DynamicObject dynamicObject, string dataBaseKey)
|
{
|
return dynamicObject.GetDataBaseProperty(dataBaseKey, "Id");
|
}
|
|
public static T GetDataBaseId<T>(this DynamicObject dynamicObject, string dataBaseKey)
|
{
|
return dynamicObject.GetDataBaseProperty<T>(dataBaseKey, "Id");
|
}
|
}
|
}
|