Files
raven/server/AyaNova/biz/BizObjectNameFetcherDirect.cs
2020-04-20 21:50:41 +00:00

65 lines
2.0 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)
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 aytype, long id, System.Data.Common.DbCommand cmd)
{
if (aytype == AyaType.NoType || id == 0)
{
return "-";
}
string TABLE = string.Empty;
string COLUMN = "name";
//CoreBizObject add here
switch (aytype)
{
case AyaType.User:
TABLE = "auser";
break;
case AyaType.Widget:
TABLE = "awidget";
break;
case AyaType.FileAttachment:
TABLE = "afileattachment";
COLUMN = "displayfilename";
break;
case AyaType.DataListView:
TABLE = "adatalistview";
break;
case AyaType.FormCustom:
TABLE = "aformcustom";
COLUMN = "formkey";
break;
default:
throw new System.NotSupportedException($"AyaNova.BLL.BizObjectNameFetcher::Name type {aytype.ToString()} is not supported");
}
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