diff --git a/.vscode/launch.json b/.vscode/launch.json index 8fd97968..0e2049e9 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -53,7 +53,7 @@ "AYANOVA_FOLDER_USER_FILES": "c:\\temp\\RavenTestData\\userfiles", "AYANOVA_FOLDER_BACKUP_FILES": "c:\\temp\\RavenTestData\\backupfiles", "AYANOVA_FOLDER_TEMPORARY_SERVER_FILES": "c:\\temp\\RavenTestData\\tempfiles", - "AYANOVA_SERVER_TEST_MODE": "true", + "AYANOVA_SERVER_TEST_MODE": "false", "AYANOVA_SERVER_TEST_MODE_SEEDLEVEL": "small", "AYANOVA_SERVER_TEST_MODE_TZ_OFFSET": "-7", "AYANOVA_BACKUP_PG_DUMP_PATH": "C:\\data\\code\\postgres_13\\bin\\" diff --git a/server/AyaNova/biz/BizObjectNameFetcherDirect.cs b/server/AyaNova/biz/BizObjectNameFetcherDirect.cs index 39c4b9aa..33bdffcf 100644 --- a/server/AyaNova/biz/BizObjectNameFetcherDirect.cs +++ b/server/AyaNova/biz/BizObjectNameFetcherDirect.cs @@ -2,101 +2,25 @@ using Microsoft.Extensions.Logging; namespace AyaNova.Biz { - //Turn a type and ID into a displayable name - //this version uses a direct DataReader for performance in tight loops (search) + //Turn a type and ID into a displayable name //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 without a NAME column, otherwise let default handle it - case AyaType.OpsNotificationSettings: - return "-"; - case AyaType.Global: - return "Global"; - case AyaType.Backup: - return "-"; - case AyaType.GlobalOps: - return "GlobalOps"; - 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.CustomerNote: - 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; - - } try { - cmd.CommandText = $"SELECT m.{COLUMN} FROM {TABLE} AS m WHERE m.id = {id} LIMIT 1"; + cmd.CommandText = $"select PUBLIC.AYGETNAME({id}, {(int)ayaType}) as m"; + // 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) : "-"; } catch { - ((ILogger)AyaNova.Util.ApplicationLogging.CreateLogger("BizObjectNameFetcherDirect")).LogError($"### Error fetching for type {ayaType}"); -#if(DEBUG) throw; -#else - return $"#{ayaType}#"; -#endif } } - - - - - - ///////////////////////////////////////////////////////////////////// - }//eoc - - }//eons diff --git a/server/AyaNova/biz/Search.cs b/server/AyaNova/biz/Search.cs index e4579383..ca6c38ed 100644 --- a/server/AyaNova/biz/Search.cs +++ b/server/AyaNova/biz/Search.cs @@ -233,9 +233,9 @@ namespace AyaNova.Biz foreach (AyaTypeId i in OrderedMatchingObjects) { SearchResult SR = new SearchResult(); - - SR.Name = BizObjectNameFetcherDirect.Name(i, command);//THIS IS CAUSING ALL THE SLOWNESS IN RETURNING SEARCH RESULTS (...much later ??? WTF??) - + SR.Name = BizObjectNameFetcherDirect.Name(i.ObjectType, + i.ObjectId, + command); SR.Id = i.ObjectId; SR.Type = i.ObjectType; ReturnObject.SearchResults.Add(SR);