81 lines
2.8 KiB
C#
81 lines
2.8 KiB
C#
namespace AyaNova.Biz
|
|
{
|
|
|
|
//Turn a type and ID into a displayable name
|
|
//this version uses a direct DataReader for performance in tight loops (search)
|
|
//Used by search and eventlog processor
|
|
internal static class BizObjectNameFetcherDirect
|
|
{
|
|
|
|
internal static string Name(AyaTypeId tid, System.Data.Common.DbCommand cmd)
|
|
{
|
|
return Name(tid.ObjectType, tid.ObjectId, cmd);
|
|
}
|
|
|
|
|
|
//Returns existance status of object type and id specified in database
|
|
internal static string Name(AyaType ayaType, long id, System.Data.Common.DbCommand cmd)
|
|
{
|
|
if (ayaType == AyaType.NoType || id == 0)
|
|
{
|
|
return "-";
|
|
}
|
|
|
|
|
|
string TABLE = string.Empty;
|
|
string COLUMN = "name";
|
|
//CoreBizObject add here BUT ONLY ADD IF AYATYPE NAME DIFFERS FROM TABLE NAME OR NO NAME FIELD AS PRIMARY NAME-LIKE COLUMN
|
|
|
|
switch (ayaType)
|
|
{
|
|
//Oddballs only, otherwise let default handle it
|
|
|
|
case AyaType.FileAttachment:
|
|
TABLE = "afileattachment";
|
|
COLUMN = "displayfilename";
|
|
break;
|
|
case AyaType.DataListView:
|
|
TABLE = "adatalistview";
|
|
break;
|
|
case AyaType.FormCustom:
|
|
TABLE = "aformcustom";
|
|
COLUMN = "formkey";
|
|
break;
|
|
case AyaType.WorkOrder:
|
|
cmd.CommandText = $"SELECT m.serial FROM aworkorder AS m WHERE m.id = {id} LIMIT 1";
|
|
using (var dr = cmd.ExecuteReader())
|
|
return dr.Read() ? dr.GetInt64(0).ToString() : "-";
|
|
//Not sure what to return here, defaulting to nothing for now
|
|
case AyaType.WorkOrderItem:
|
|
case AyaType.WorkOrderItemExpense:
|
|
case AyaType.WorkOrderItemLabor:
|
|
case AyaType.WorkOrderItemLoan:
|
|
case AyaType.WorkOrderItemPart:
|
|
case AyaType.WorkOrderItemPartRequest:
|
|
case AyaType.WorkOrderItemScheduledUser:
|
|
case AyaType.WorkOrderItemTask:
|
|
case AyaType.WorkOrderItemTravel:
|
|
case AyaType.WorkOrderItemUnit:
|
|
return "-";
|
|
default:
|
|
TABLE = "a" + ayaType.ToString().ToLowerInvariant();
|
|
break;
|
|
|
|
}
|
|
cmd.CommandText = $"SELECT m.{COLUMN} FROM {TABLE} AS m WHERE m.id = {id} LIMIT 1";
|
|
using (var dr = cmd.ExecuteReader())
|
|
return dr.Read() ? dr.GetString(0) : "-";
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////
|
|
|
|
}//eoc
|
|
|
|
|
|
}//eons
|
|
|