From ef063d58649b00adae407507841ef774cf6cb50b Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Tue, 11 Feb 2020 19:25:12 +0000 Subject: [PATCH] --- .../Controllers/EnumPickListController.cs | 204 +++++++++--------- server/AyaNova/DataList/AyaDataList.cs | 12 +- server/AyaNova/DataList/TestWidgetDataList.cs | 2 +- server/AyaNova/biz/LocaleBiz.cs | 2 +- server/AyaNova/resource/de.json | 2 +- server/AyaNova/resource/en.json | 2 +- server/AyaNova/resource/es.json | 2 +- server/AyaNova/resource/fr.json | 2 +- server/AyaNova/util/StringUtil.cs | 12 +- 9 files changed, 118 insertions(+), 122 deletions(-) diff --git a/server/AyaNova/Controllers/EnumPickListController.cs b/server/AyaNova/Controllers/EnumPickListController.cs index 523c5bdb..82bd18f8 100644 --- a/server/AyaNova/Controllers/EnumPickListController.cs +++ b/server/AyaNova/Controllers/EnumPickListController.cs @@ -7,6 +7,7 @@ using Microsoft.AspNetCore.Authorization; using AyaNova.Models; using AyaNova.Api.ControllerHelpers; using AyaNova.Biz; +using AyaNova.Util; namespace AyaNova.Api.Controllers @@ -59,109 +60,104 @@ namespace AyaNova.Api.Controllers List ReturnList = new List(); - switch (enumkey.ToLowerInvariant()) + var keyNameInLowerCase = enumkey.ToLowerInvariant(); + + + if (keyNameInLowerCase == StringUtil.TrimTypeName(typeof(UiFieldDataType).ToString()).ToLowerInvariant()) { - case "datatypes": - { - //Iterate the enum and get the values - Type t = typeof(UiFieldDataType); - Enum.GetName(t, UiFieldDataType.NoType); - foreach (var dt in Enum.GetValues(t)) - { - ReturnList.Add(new NameIdItem() { Name = Enum.GetName(t, dt), Id = (int)dt }); - } - - } - break; - - case "ayatype": - { - - var values = Enum.GetValues(typeof(AyaType)); - foreach (AyaType t in values) - { - string name = t.ToString(); - if (t.HasAttribute(typeof(AttachableAttribute))) - { - name += " [Attachable]"; - } - ReturnList.Add(new NameIdItem() { Name = name, Id = (long)t }); - } - } - break; - - case "usertypes": - { - LocaleKeysToFetch.Add("UserTypesAdministrator"); - LocaleKeysToFetch.Add("UserTypesSchedulable"); - LocaleKeysToFetch.Add("UserTypesNonSchedulable"); - LocaleKeysToFetch.Add("UserTypesClient"); - LocaleKeysToFetch.Add("UserTypesHeadOffice"); - LocaleKeysToFetch.Add("UserTypesSubContractor"); - var LT = LocaleBiz.GetSubsetStaticAsync(LocaleKeysToFetch, LocaleId).Result; - - ReturnList.Add(new NameIdItem() { Name = LT["UserTypesAdministrator"], Id = (long)UserType.Administrator }); - ReturnList.Add(new NameIdItem() { Name = LT["UserTypesSchedulable"], Id = (long)UserType.Schedulable }); - ReturnList.Add(new NameIdItem() { Name = LT["UserTypesNonSchedulable"], Id = (long)UserType.NonSchedulable }); - ReturnList.Add(new NameIdItem() { Name = LT["UserTypesClient"], Id = (long)UserType.Customer }); - ReturnList.Add(new NameIdItem() { Name = LT["UserTypesHeadOffice"], Id = (long)UserType.HeadOffice }); - ReturnList.Add(new NameIdItem() { Name = LT["UserTypesSubContractor"], Id = (long)UserType.Subcontractor }); - } - break; - - case "authorizationroles": - { - - LocaleKeysToFetch.Add("AuthorizationRoleNoRole"); - LocaleKeysToFetch.Add("AuthorizationRoleBizAdminLimited"); - LocaleKeysToFetch.Add("AuthorizationRoleBizAdminFull"); - LocaleKeysToFetch.Add("AuthorizationRoleDispatchLimited"); - LocaleKeysToFetch.Add("AuthorizationRoleDispatchFull"); - LocaleKeysToFetch.Add("AuthorizationRoleInventoryLimited"); - LocaleKeysToFetch.Add("AuthorizationRoleInventoryFull"); - LocaleKeysToFetch.Add("AuthorizationRoleAccountingFull"); - LocaleKeysToFetch.Add("AuthorizationRoleTechLimited"); - LocaleKeysToFetch.Add("AuthorizationRoleTechFull"); - LocaleKeysToFetch.Add("AuthorizationRoleSubContractorLimited"); - LocaleKeysToFetch.Add("AuthorizationRoleSubContractorFull"); - LocaleKeysToFetch.Add("AuthorizationRoleCustomerLimited"); - LocaleKeysToFetch.Add("AuthorizationRoleCustomerFull"); - LocaleKeysToFetch.Add("AuthorizationRoleOpsAdminLimited"); - LocaleKeysToFetch.Add("AuthorizationRoleOpsAdminFull"); - LocaleKeysToFetch.Add("AuthorizationRoleSalesLimited"); - LocaleKeysToFetch.Add("AuthorizationRoleSalesFull"); - LocaleKeysToFetch.Add("AuthorizationRoleAll"); - var LT = LocaleBiz.GetSubsetStaticAsync(LocaleKeysToFetch, LocaleId).Result; - - ReturnList.Add(new NameIdItem() { Name = LT["AuthorizationRoleNoRole"], Id = (long)AuthorizationRoles.NoRole }); - ReturnList.Add(new NameIdItem() { Name = LT["AuthorizationRoleBizAdminLimited"], Id = (long)AuthorizationRoles.BizAdminLimited }); - ReturnList.Add(new NameIdItem() { Name = LT["AuthorizationRoleBizAdminFull"], Id = (long)AuthorizationRoles.BizAdminFull }); - ReturnList.Add(new NameIdItem() { Name = LT["AuthorizationRoleDispatchLimited"], Id = (long)AuthorizationRoles.DispatchLimited }); - ReturnList.Add(new NameIdItem() { Name = LT["AuthorizationRoleDispatchFull"], Id = (long)AuthorizationRoles.DispatchFull }); - ReturnList.Add(new NameIdItem() { Name = LT["AuthorizationRoleInventoryLimited"], Id = (long)AuthorizationRoles.InventoryLimited }); - ReturnList.Add(new NameIdItem() { Name = LT["AuthorizationRoleInventoryFull"], Id = (long)AuthorizationRoles.InventoryFull }); - ReturnList.Add(new NameIdItem() { Name = LT["AuthorizationRoleAccountingFull"], Id = (long)AuthorizationRoles.AccountingFull }); - ReturnList.Add(new NameIdItem() { Name = LT["AuthorizationRoleTechLimited"], Id = (long)AuthorizationRoles.TechLimited }); - ReturnList.Add(new NameIdItem() { Name = LT["AuthorizationRoleTechFull"], Id = (long)AuthorizationRoles.TechFull }); - ReturnList.Add(new NameIdItem() { Name = LT["AuthorizationRoleSubContractorLimited"], Id = (long)AuthorizationRoles.SubContractorLimited }); - ReturnList.Add(new NameIdItem() { Name = LT["AuthorizationRoleSubContractorFull"], Id = (long)AuthorizationRoles.SubContractorFull }); - ReturnList.Add(new NameIdItem() { Name = LT["AuthorizationRoleCustomerLimited"], Id = (long)AuthorizationRoles.CustomerLimited }); - ReturnList.Add(new NameIdItem() { Name = LT["AuthorizationRoleCustomerFull"], Id = (long)AuthorizationRoles.CustomerFull }); - ReturnList.Add(new NameIdItem() { Name = LT["AuthorizationRoleOpsAdminLimited"], Id = (long)AuthorizationRoles.OpsAdminLimited }); - ReturnList.Add(new NameIdItem() { Name = LT["AuthorizationRoleOpsAdminFull"], Id = (long)AuthorizationRoles.OpsAdminFull }); - ReturnList.Add(new NameIdItem() { Name = LT["AuthorizationRoleSalesLimited"], Id = (long)AuthorizationRoles.SalesLimited }); - ReturnList.Add(new NameIdItem() { Name = LT["AuthorizationRoleSalesFull"], Id = (long)AuthorizationRoles.SalesFull }); - ReturnList.Add(new NameIdItem() { Name = LT["AuthorizationRoleAll"], Id = (long)AuthorizationRoles.All }); - - } - break; - - - default: - ReturnList.Add(new NameIdItem() { Name = $"Unknown enum type list key value {enumkey}", Id = (long)UserType.Administrator }); - break; + //Iterate the enum and get the values + Type t = typeof(UiFieldDataType); + Enum.GetName(t, UiFieldDataType.NoType); + foreach (var dt in Enum.GetValues(t)) + { + ReturnList.Add(new NameIdItem() { Name = Enum.GetName(t, dt), Id = (int)dt }); + } } + else if (keyNameInLowerCase == StringUtil.TrimTypeName(typeof(AyaType).ToString()).ToLowerInvariant()) + { + + var values = Enum.GetValues(typeof(AyaType)); + foreach (AyaType t in values) + { + string name = t.ToString(); + if (t.HasAttribute(typeof(AttachableAttribute))) + { + name += " [Attachable]"; + } + ReturnList.Add(new NameIdItem() { Name = name, Id = (long)t }); + } + } + else if (keyNameInLowerCase == StringUtil.TrimTypeName(typeof(UserType).ToString()).ToLowerInvariant()) + { + LocaleKeysToFetch.Add("UserTypesAdministrator"); + LocaleKeysToFetch.Add("UserTypesSchedulable"); + LocaleKeysToFetch.Add("UserTypesNonSchedulable"); + LocaleKeysToFetch.Add("UserTypesClient"); + LocaleKeysToFetch.Add("UserTypesHeadOffice"); + LocaleKeysToFetch.Add("UserTypesSubContractor"); + LocaleKeysToFetch.Add("UserTypesUtility"); + var LT = LocaleBiz.GetSubsetStaticAsync(LocaleKeysToFetch, LocaleId).Result; + + ReturnList.Add(new NameIdItem() { Name = LT["UserTypesAdministrator"], Id = (long)UserType.Administrator }); + ReturnList.Add(new NameIdItem() { Name = LT["UserTypesSchedulable"], Id = (long)UserType.Schedulable }); + ReturnList.Add(new NameIdItem() { Name = LT["UserTypesNonSchedulable"], Id = (long)UserType.NonSchedulable }); + ReturnList.Add(new NameIdItem() { Name = LT["UserTypesClient"], Id = (long)UserType.Customer }); + ReturnList.Add(new NameIdItem() { Name = LT["UserTypesHeadOffice"], Id = (long)UserType.HeadOffice }); + ReturnList.Add(new NameIdItem() { Name = LT["UserTypesUtility"], Id = (long)UserType.Utility }); + ReturnList.Add(new NameIdItem() { Name = LT["UserTypesSubContractor"], Id = (long)UserType.Subcontractor }); + } + else if (keyNameInLowerCase == StringUtil.TrimTypeName(typeof(AuthorizationRoles).ToString()).ToLowerInvariant()) + { + + LocaleKeysToFetch.Add("AuthorizationRoleNoRole"); + LocaleKeysToFetch.Add("AuthorizationRoleBizAdminLimited"); + LocaleKeysToFetch.Add("AuthorizationRoleBizAdminFull"); + LocaleKeysToFetch.Add("AuthorizationRoleDispatchLimited"); + LocaleKeysToFetch.Add("AuthorizationRoleDispatchFull"); + LocaleKeysToFetch.Add("AuthorizationRoleInventoryLimited"); + LocaleKeysToFetch.Add("AuthorizationRoleInventoryFull"); + LocaleKeysToFetch.Add("AuthorizationRoleAccountingFull"); + LocaleKeysToFetch.Add("AuthorizationRoleTechLimited"); + LocaleKeysToFetch.Add("AuthorizationRoleTechFull"); + LocaleKeysToFetch.Add("AuthorizationRoleSubContractorLimited"); + LocaleKeysToFetch.Add("AuthorizationRoleSubContractorFull"); + LocaleKeysToFetch.Add("AuthorizationRoleCustomerLimited"); + LocaleKeysToFetch.Add("AuthorizationRoleCustomerFull"); + LocaleKeysToFetch.Add("AuthorizationRoleOpsAdminLimited"); + LocaleKeysToFetch.Add("AuthorizationRoleOpsAdminFull"); + LocaleKeysToFetch.Add("AuthorizationRoleSalesLimited"); + LocaleKeysToFetch.Add("AuthorizationRoleSalesFull"); + LocaleKeysToFetch.Add("AuthorizationRoleAll"); + var LT = LocaleBiz.GetSubsetStaticAsync(LocaleKeysToFetch, LocaleId).Result; + + ReturnList.Add(new NameIdItem() { Name = LT["AuthorizationRoleNoRole"], Id = (long)AuthorizationRoles.NoRole }); + ReturnList.Add(new NameIdItem() { Name = LT["AuthorizationRoleBizAdminLimited"], Id = (long)AuthorizationRoles.BizAdminLimited }); + ReturnList.Add(new NameIdItem() { Name = LT["AuthorizationRoleBizAdminFull"], Id = (long)AuthorizationRoles.BizAdminFull }); + ReturnList.Add(new NameIdItem() { Name = LT["AuthorizationRoleDispatchLimited"], Id = (long)AuthorizationRoles.DispatchLimited }); + ReturnList.Add(new NameIdItem() { Name = LT["AuthorizationRoleDispatchFull"], Id = (long)AuthorizationRoles.DispatchFull }); + ReturnList.Add(new NameIdItem() { Name = LT["AuthorizationRoleInventoryLimited"], Id = (long)AuthorizationRoles.InventoryLimited }); + ReturnList.Add(new NameIdItem() { Name = LT["AuthorizationRoleInventoryFull"], Id = (long)AuthorizationRoles.InventoryFull }); + ReturnList.Add(new NameIdItem() { Name = LT["AuthorizationRoleAccountingFull"], Id = (long)AuthorizationRoles.AccountingFull }); + ReturnList.Add(new NameIdItem() { Name = LT["AuthorizationRoleTechLimited"], Id = (long)AuthorizationRoles.TechLimited }); + ReturnList.Add(new NameIdItem() { Name = LT["AuthorizationRoleTechFull"], Id = (long)AuthorizationRoles.TechFull }); + ReturnList.Add(new NameIdItem() { Name = LT["AuthorizationRoleSubContractorLimited"], Id = (long)AuthorizationRoles.SubContractorLimited }); + ReturnList.Add(new NameIdItem() { Name = LT["AuthorizationRoleSubContractorFull"], Id = (long)AuthorizationRoles.SubContractorFull }); + ReturnList.Add(new NameIdItem() { Name = LT["AuthorizationRoleCustomerLimited"], Id = (long)AuthorizationRoles.CustomerLimited }); + ReturnList.Add(new NameIdItem() { Name = LT["AuthorizationRoleCustomerFull"], Id = (long)AuthorizationRoles.CustomerFull }); + ReturnList.Add(new NameIdItem() { Name = LT["AuthorizationRoleOpsAdminLimited"], Id = (long)AuthorizationRoles.OpsAdminLimited }); + ReturnList.Add(new NameIdItem() { Name = LT["AuthorizationRoleOpsAdminFull"], Id = (long)AuthorizationRoles.OpsAdminFull }); + ReturnList.Add(new NameIdItem() { Name = LT["AuthorizationRoleSalesLimited"], Id = (long)AuthorizationRoles.SalesLimited }); + ReturnList.Add(new NameIdItem() { Name = LT["AuthorizationRoleSalesFull"], Id = (long)AuthorizationRoles.SalesFull }); + ReturnList.Add(new NameIdItem() { Name = LT["AuthorizationRoleAll"], Id = (long)AuthorizationRoles.All }); + + } + else + { + ReturnList.Add(new NameIdItem() { Name = $"Unknown enum type list key value {enumkey}", Id = (long)UserType.Administrator }); + } + + return Ok(ApiOkResponse.Response(ReturnList, true)); } @@ -182,10 +178,10 @@ namespace AyaNova.Api.Controllers } List> ret = new List>(); - ret.Add(new KeyValuePair("UserTypes", "AyaNova user account types")); - ret.Add(new KeyValuePair("AuthorizationRoles", "AyaNova user account role types")); - ret.Add(new KeyValuePair("AyaType", "All AyaNova object types")); - ret.Add(new KeyValuePair("DataTypes", "Types of data used in AyaNova for display and formatting UI purposes")); + ret.Add(new KeyValuePair(typeof(UserType).ToString(), "AyaNova user account types")); + ret.Add(new KeyValuePair(typeof(AuthorizationRoles).ToString(), "AyaNova user account role types")); + ret.Add(new KeyValuePair(typeof(AyaType).ToString(), "All AyaNova object types")); + ret.Add(new KeyValuePair(typeof(UiFieldDataType).ToString(), "Types of data used in AyaNova for display and formatting UI purposes")); return Ok(ApiOkResponse.Response(ret, true)); } diff --git a/server/AyaNova/DataList/AyaDataList.cs b/server/AyaNova/DataList/AyaDataList.cs index f6b1cda9..f156c1cf 100644 --- a/server/AyaNova/DataList/AyaDataList.cs +++ b/server/AyaNova/DataList/AyaDataList.cs @@ -73,7 +73,7 @@ namespace AyaNova.DataList //Has a Enumtype? if (!string.IsNullOrEmpty(o.EnumType)) - sb.Append($",\"et\":\"{TrimTypeName(o.EnumType)}\""); + sb.Append($",\"et\":\"{AyaNova.Util.StringUtil.TrimTypeName(o.EnumType)}\""); sb.Append("}"); @@ -85,16 +85,6 @@ namespace AyaNova.DataList } - //used to trim an enum type down to only it's most relevant (rightmost) portion - private string TrimTypeName(string str) - { - if (str.Contains('.')) - { - return str.Substring(str.LastIndexOf('.') + 1); - } - return str; - } - //make sure the template parses and all the fields specified are really existant //this is more for dev errors or api users becuase the client shouldn't generate bad templates public bool ValidateTemplate(string template) diff --git a/server/AyaNova/DataList/TestWidgetDataList.cs b/server/AyaNova/DataList/TestWidgetDataList.cs index 0193aa4e..001baa60 100644 --- a/server/AyaNova/DataList/TestWidgetDataList.cs +++ b/server/AyaNova/DataList/TestWidgetDataList.cs @@ -59,7 +59,7 @@ namespace AyaNova.DataList LtKey = "WidgetUserType", FieldKey = "widgetusertype", UiFieldDataType = (int)UiFieldDataType.Enum, - EnumType = typeof(AuthorizationRoles).ToString(), + EnumType = typeof(UserType).ToString(), SqlValueColumnName = "awidget.usertype" }); FieldDefinitions.Add(new AyaDataListFieldDefinition diff --git a/server/AyaNova/biz/LocaleBiz.cs b/server/AyaNova/biz/LocaleBiz.cs index 23d9a79a..a1b60697 100644 --- a/server/AyaNova/biz/LocaleBiz.cs +++ b/server/AyaNova/biz/LocaleBiz.cs @@ -467,7 +467,7 @@ namespace AyaNova.Biz //Misc s = s.Replace("FormFieldDataType", "UiFieldDataType", StringComparison.InvariantCultureIgnoreCase); s = s.Replace("UserUserType", "UserType", StringComparison.InvariantCultureIgnoreCase); - + s = s.Replace("UserTypesUtilityNotification", "UserTypesUtility", StringComparison.InvariantCultureIgnoreCase); // s = s.Replace("WASXXX", "NOWXXXX", StringComparison.InvariantCultureIgnoreCase); // s = s.Replace("WASXXX", "NOWXXXX", StringComparison.InvariantCultureIgnoreCase); diff --git a/server/AyaNova/resource/de.json b/server/AyaNova/resource/de.json index 25e1491e..8d656771 100644 --- a/server/AyaNova/resource/de.json +++ b/server/AyaNova/resource/de.json @@ -1213,7 +1213,7 @@ "UserTypesHeadOffice": "Benutzer am Hauptsitz des Kunden", "UserTypesNonSchedulable": "Nicht planbarer Benutzer", "UserTypesSchedulable": "Planbarer Benutzer", - "UserTypesUtilityNotification": "Benachrichtigungsserverkonto", + "UserTypesUtility": "Dienstprogrammkonto", "VendorAccountNumber": "Kontonummer", "VendorContact": "Contact", "VendorContactNotes": "Other contacts", diff --git a/server/AyaNova/resource/en.json b/server/AyaNova/resource/en.json index 22b3442d..54e0b63f 100644 --- a/server/AyaNova/resource/en.json +++ b/server/AyaNova/resource/en.json @@ -1213,7 +1213,7 @@ "UserTypesHeadOffice": "Head office user", "UserTypesNonSchedulable": "Non-schedulable user", "UserTypesSchedulable": "Schedulable user", - "UserTypesUtilityNotification": "Notification server account", + "UserTypesUtility": "Utility account", "VendorAccountNumber": "Account Number", "VendorContact": "Contact", "VendorContactNotes": "Other contacts", diff --git a/server/AyaNova/resource/es.json b/server/AyaNova/resource/es.json index 875d7ba0..4b69625e 100644 --- a/server/AyaNova/resource/es.json +++ b/server/AyaNova/resource/es.json @@ -1213,7 +1213,7 @@ "UserTypesHeadOffice": "Usuario cliente de sede", "UserTypesNonSchedulable": "Usuario no programable", "UserTypesSchedulable": "Usuario programable", - "UserTypesUtilityNotification": "Cuenta servidor de notificación", + "UserTypesUtility": "Cuenta de utilidad", "VendorAccountNumber": "Número de cuenta", "VendorContact": "Contact", "VendorContactNotes": "Other contacts", diff --git a/server/AyaNova/resource/fr.json b/server/AyaNova/resource/fr.json index 3184eec4..34e4b296 100644 --- a/server/AyaNova/resource/fr.json +++ b/server/AyaNova/resource/fr.json @@ -1213,7 +1213,7 @@ "UserTypesHeadOffice": "Utilisateur client de siège social", "UserTypesNonSchedulable": "Utilisateur non programmable", "UserTypesSchedulable": "Utilisateur programmable", - "UserTypesUtilityNotification": "Compte de serveur de notifications", + "UserTypesUtility": "Compte utilitaire", "VendorAccountNumber": "Numéro de compte", "VendorContact": "Contact", "VendorContactNotes": "Other contacts", diff --git a/server/AyaNova/util/StringUtil.cs b/server/AyaNova/util/StringUtil.cs index 2711ffd9..aee3751f 100644 --- a/server/AyaNova/util/StringUtil.cs +++ b/server/AyaNova/util/StringUtil.cs @@ -111,10 +111,20 @@ namespace AyaNova.Util } ret = s.Substring(0, Math.Abs(diff)) + unique; } - + return ret; } + //used to trim an enum type down to only it's most relevant (rightmost) portion + public static string TrimTypeName(string str) + { + if (str.Contains('.')) + { + return str.Substring(str.LastIndexOf('.') + 1); + } + return str; + } + }//eoc