diff --git a/server/AyaNova/DataList/AyaDataList.cs b/server/AyaNova/DataList/AyaDataList.cs index e962caad..f93ffcb8 100644 --- a/server/AyaNova/DataList/AyaDataList.cs +++ b/server/AyaNova/DataList/AyaDataList.cs @@ -3,6 +3,7 @@ using System.Linq; using System.Text; using AyaNova.Biz; using Newtonsoft.Json.Linq; +using Microsoft.EntityFrameworkCore; namespace AyaNova.DataList { @@ -44,6 +45,10 @@ namespace AyaNova.DataList public Newtonsoft.Json.Linq.JArray GenerateListColumnsJSONFromListView(JArray listViewArray) { + //custom fields handling + var ct = AyaNova.Util.ServiceProviderProvider.DBContext; + var FormCustomization = ct.FormCustom.AsNoTracking().SingleOrDefault(x => x.FormKey == AyaType.Widget.ToString()); + var ListViewFieldKeys = GetFieldListFromListView(listViewArray); //Generate JSON fragment to return with column definitions @@ -71,7 +76,12 @@ namespace AyaNova.DataList sb.Append(","); sb.Append("{"); //Build required part of column definition - sb.Append($"\"cm\":\"{o.LtKey}\",\"dt\":{(int)o.UiFieldDataType}"); + if (!o.IsCustomField) + sb.Append($"\"cm\":\"{o.LtKey}\",\"dt\":{(int)o.UiFieldDataType}"); + else + { + //insert specific type for this custom field + } //Has a AyObjectType? (linkable / openable) if (o.AyaObjectType != 0) diff --git a/server/AyaNova/biz/AyaFormFieldDefinitions.cs b/server/AyaNova/biz/AyaFormFieldDefinitions.cs index cae2288b..7f3b97d8 100644 --- a/server/AyaNova/biz/AyaFormFieldDefinitions.cs +++ b/server/AyaNova/biz/AyaFormFieldDefinitions.cs @@ -1,7 +1,4 @@ -using System.Linq; using System.Collections.Generic; -using Newtonsoft.Json.Linq; -using System.Text; namespace AyaNova.Biz { @@ -15,8 +12,8 @@ namespace AyaNova.Biz //DEFINE VALID KEYS HERE - public const string WIDGET_KEY = "widget"; - public const string USER_KEY = "user"; + // public const string WIDGET_KEY = "widget"; + // public const string USER_KEY = "user"; public static List AyaFormFieldDefinitionKeys @@ -24,12 +21,13 @@ namespace AyaNova.Biz get { List l = new List{ - WIDGET_KEY, USER_KEY + AyaType.Widget.ToString(),AyaType.User.ToString() }; return l; } } + public static bool IsValidFormFieldDefinitionKey(string key) { return AyaFormFieldDefinitionKeys.Contains(key); @@ -42,78 +40,80 @@ namespace AyaNova.Biz ***************************** Otherwise the hidden field can't be set and the object can't be saved EVER */ List l = new List(); - switch (key) + + if (key == AyaType.Widget.ToString()) { - case WIDGET_KEY: - #region WIDGET_KEY - - l.Add(new AyaFormFieldDefinition { LtKey = "WidgetName", FieldKey = "Name", Hideable = false }); - l.Add(new AyaFormFieldDefinition { LtKey = "WidgetSerial", FieldKey = "Serial" }); - l.Add(new AyaFormFieldDefinition { LtKey = "WidgetDollarAmount", FieldKey = "DollarAmount" }); - l.Add(new AyaFormFieldDefinition { LtKey = "WidgetCount", FieldKey = "Count" }); - l.Add(new AyaFormFieldDefinition { LtKey = "WidgetUserType", FieldKey = "UserType" }); - l.Add(new AyaFormFieldDefinition { LtKey = "WidgetStartDate", FieldKey = "StartDate" }); - l.Add(new AyaFormFieldDefinition { LtKey = "WidgetEndDate", FieldKey = "EndDate" }); - l.Add(new AyaFormFieldDefinition { LtKey = "WidgetNotes", FieldKey = "Notes" }); - //More to do on this, maybe the datatype should be a LINK or something for UI purposes - //circle back on this when there is enough infrastructure to test - l.Add(new AyaFormFieldDefinition { LtKey = "User", FieldKey = "userid" }); - l.Add(new AyaFormFieldDefinition { LtKey = "Active", FieldKey = "Active", Hideable = false }); - l.Add(new AyaFormFieldDefinition { LtKey = "Tags", FieldKey = "Tags" }); - l.Add(new AyaFormFieldDefinition { LtKey = "WidgetCustom1", FieldKey = "WidgetCustom1", IsCustomField = true }); - l.Add(new AyaFormFieldDefinition { LtKey = "WidgetCustom2", FieldKey = "WidgetCustom2", IsCustomField = true }); - l.Add(new AyaFormFieldDefinition { LtKey = "WidgetCustom3", FieldKey = "WidgetCustom3", IsCustomField = true }); - l.Add(new AyaFormFieldDefinition { LtKey = "WidgetCustom4", FieldKey = "WidgetCustom4", IsCustomField = true }); - l.Add(new AyaFormFieldDefinition { LtKey = "WidgetCustom5", FieldKey = "WidgetCustom5", IsCustomField = true }); - l.Add(new AyaFormFieldDefinition { LtKey = "WidgetCustom6", FieldKey = "WidgetCustom6", IsCustomField = true }); - l.Add(new AyaFormFieldDefinition { LtKey = "WidgetCustom7", FieldKey = "WidgetCustom7", IsCustomField = true }); - l.Add(new AyaFormFieldDefinition { LtKey = "WidgetCustom8", FieldKey = "WidgetCustom8", IsCustomField = true }); - l.Add(new AyaFormFieldDefinition { LtKey = "WidgetCustom9", FieldKey = "WidgetCustom9", IsCustomField = true }); - l.Add(new AyaFormFieldDefinition { LtKey = "WidgetCustom10", FieldKey = "WidgetCustom10", IsCustomField = true }); - l.Add(new AyaFormFieldDefinition { LtKey = "WidgetCustom11", FieldKey = "WidgetCustom11", IsCustomField = true }); - l.Add(new AyaFormFieldDefinition { LtKey = "WidgetCustom12", FieldKey = "WidgetCustom12", IsCustomField = true }); - l.Add(new AyaFormFieldDefinition { LtKey = "WidgetCustom13", FieldKey = "WidgetCustom13", IsCustomField = true }); - l.Add(new AyaFormFieldDefinition { LtKey = "WidgetCustom14", FieldKey = "WidgetCustom14", IsCustomField = true }); - l.Add(new AyaFormFieldDefinition { LtKey = "WidgetCustom15", FieldKey = "WidgetCustom15", IsCustomField = true }); - l.Add(new AyaFormFieldDefinition { LtKey = "WidgetCustom16", FieldKey = "WidgetCustom16", IsCustomField = true }); - break; + + #region WIDGET_KEY + + l.Add(new AyaFormFieldDefinition { LtKey = "WidgetName", FieldKey = "Name", Hideable = false }); + l.Add(new AyaFormFieldDefinition { LtKey = "WidgetSerial", FieldKey = "Serial" }); + l.Add(new AyaFormFieldDefinition { LtKey = "WidgetDollarAmount", FieldKey = "DollarAmount" }); + l.Add(new AyaFormFieldDefinition { LtKey = "WidgetCount", FieldKey = "Count" }); + l.Add(new AyaFormFieldDefinition { LtKey = "WidgetUserType", FieldKey = "UserType" }); + l.Add(new AyaFormFieldDefinition { LtKey = "WidgetStartDate", FieldKey = "StartDate" }); + l.Add(new AyaFormFieldDefinition { LtKey = "WidgetEndDate", FieldKey = "EndDate" }); + l.Add(new AyaFormFieldDefinition { LtKey = "WidgetNotes", FieldKey = "Notes" }); + //More to do on this, maybe the datatype should be a LINK or something for UI purposes + //circle back on this when there is enough infrastructure to test + l.Add(new AyaFormFieldDefinition { LtKey = "User", FieldKey = "userid" }); + l.Add(new AyaFormFieldDefinition { LtKey = "Active", FieldKey = "Active", Hideable = false }); + l.Add(new AyaFormFieldDefinition { LtKey = "Tags", FieldKey = "Tags" }); + + l.Add(new AyaFormFieldDefinition { LtKey = "WidgetCustom1", FieldKey = "WidgetCustom1", IsCustomField = true }); + l.Add(new AyaFormFieldDefinition { LtKey = "WidgetCustom2", FieldKey = "WidgetCustom2", IsCustomField = true }); + l.Add(new AyaFormFieldDefinition { LtKey = "WidgetCustom3", FieldKey = "WidgetCustom3", IsCustomField = true }); + l.Add(new AyaFormFieldDefinition { LtKey = "WidgetCustom4", FieldKey = "WidgetCustom4", IsCustomField = true }); + l.Add(new AyaFormFieldDefinition { LtKey = "WidgetCustom5", FieldKey = "WidgetCustom5", IsCustomField = true }); + l.Add(new AyaFormFieldDefinition { LtKey = "WidgetCustom6", FieldKey = "WidgetCustom6", IsCustomField = true }); + l.Add(new AyaFormFieldDefinition { LtKey = "WidgetCustom7", FieldKey = "WidgetCustom7", IsCustomField = true }); + l.Add(new AyaFormFieldDefinition { LtKey = "WidgetCustom8", FieldKey = "WidgetCustom8", IsCustomField = true }); + l.Add(new AyaFormFieldDefinition { LtKey = "WidgetCustom9", FieldKey = "WidgetCustom9", IsCustomField = true }); + l.Add(new AyaFormFieldDefinition { LtKey = "WidgetCustom10", FieldKey = "WidgetCustom10", IsCustomField = true }); + l.Add(new AyaFormFieldDefinition { LtKey = "WidgetCustom11", FieldKey = "WidgetCustom11", IsCustomField = true }); + l.Add(new AyaFormFieldDefinition { LtKey = "WidgetCustom12", FieldKey = "WidgetCustom12", IsCustomField = true }); + l.Add(new AyaFormFieldDefinition { LtKey = "WidgetCustom13", FieldKey = "WidgetCustom13", IsCustomField = true }); + l.Add(new AyaFormFieldDefinition { LtKey = "WidgetCustom14", FieldKey = "WidgetCustom14", IsCustomField = true }); + l.Add(new AyaFormFieldDefinition { LtKey = "WidgetCustom15", FieldKey = "WidgetCustom15", IsCustomField = true }); + l.Add(new AyaFormFieldDefinition { LtKey = "WidgetCustom16", FieldKey = "WidgetCustom16", IsCustomField = true }); + return l; #endregion - case USER_KEY: - #region USER_KEY - l.Add(new AyaFormFieldDefinition { LtKey = "Name", FieldKey = "Name", Hideable = false }); - l.Add(new AyaFormFieldDefinition { LtKey = "UserEmployeeNumber", FieldKey = "EmployeeNumber" }); - l.Add(new AyaFormFieldDefinition { LtKey = "AuthorizationRoles", FieldKey = "Roles", Hideable = false }); - l.Add(new AyaFormFieldDefinition { LtKey = "UserNotes", FieldKey = "Notes" }); - l.Add(new AyaFormFieldDefinition { LtKey = "UserType", FieldKey = "UserType", Hideable = false }); - l.Add(new AyaFormFieldDefinition { LtKey = "Active", FieldKey = "Active", Hideable = false }); - l.Add(new AyaFormFieldDefinition { LtKey = "Tags", FieldKey = "Tags" }); - - l.Add(new AyaFormFieldDefinition { LtKey = "UserCustom1", FieldKey = "UserCustom1", IsCustomField = true }); - l.Add(new AyaFormFieldDefinition { LtKey = "UserCustom2", FieldKey = "UserCustom2", IsCustomField = true }); - l.Add(new AyaFormFieldDefinition { LtKey = "UserCustom3", FieldKey = "UserCustom3", IsCustomField = true }); - l.Add(new AyaFormFieldDefinition { LtKey = "UserCustom4", FieldKey = "UserCustom4", IsCustomField = true }); - l.Add(new AyaFormFieldDefinition { LtKey = "UserCustom5", FieldKey = "UserCustom5", IsCustomField = true }); - l.Add(new AyaFormFieldDefinition { LtKey = "UserCustom6", FieldKey = "UserCustom6", IsCustomField = true }); - l.Add(new AyaFormFieldDefinition { LtKey = "UserCustom7", FieldKey = "UserCustom7", IsCustomField = true }); - l.Add(new AyaFormFieldDefinition { LtKey = "UserCustom8", FieldKey = "UserCustom8", IsCustomField = true }); - l.Add(new AyaFormFieldDefinition { LtKey = "UserCustom9", FieldKey = "UserCustom9", IsCustomField = true }); - l.Add(new AyaFormFieldDefinition { LtKey = "UserCustom10", FieldKey = "UserCustom10", IsCustomField = true }); - l.Add(new AyaFormFieldDefinition { LtKey = "UserCustom11", FieldKey = "UserCustom11", IsCustomField = true }); - l.Add(new AyaFormFieldDefinition { LtKey = "UserCustom12", FieldKey = "UserCustom12", IsCustomField = true }); - l.Add(new AyaFormFieldDefinition { LtKey = "UserCustom13", FieldKey = "UserCustom13", IsCustomField = true }); - l.Add(new AyaFormFieldDefinition { LtKey = "UserCustom14", FieldKey = "UserCustom14", IsCustomField = true }); - l.Add(new AyaFormFieldDefinition { LtKey = "UserCustom15", FieldKey = "UserCustom15", IsCustomField = true }); - l.Add(new AyaFormFieldDefinition { LtKey = "UserCustom16", FieldKey = "UserCustom16", IsCustomField = true }); - break; - #endregion - - - - default: - throw new System.ArgumentOutOfRangeException($"AyaFormFieldDefinitions: {key} is not valid"); } - return l; + + if (key == AyaType.User.ToString()) + { + #region USER_KEY + l.Add(new AyaFormFieldDefinition { LtKey = "Name", FieldKey = "Name", Hideable = false }); + l.Add(new AyaFormFieldDefinition { LtKey = "UserEmployeeNumber", FieldKey = "EmployeeNumber" }); + l.Add(new AyaFormFieldDefinition { LtKey = "AuthorizationRoles", FieldKey = "Roles", Hideable = false }); + l.Add(new AyaFormFieldDefinition { LtKey = "UserNotes", FieldKey = "Notes" }); + l.Add(new AyaFormFieldDefinition { LtKey = "UserType", FieldKey = "UserType", Hideable = false }); + l.Add(new AyaFormFieldDefinition { LtKey = "Active", FieldKey = "Active", Hideable = false }); + l.Add(new AyaFormFieldDefinition { LtKey = "Tags", FieldKey = "Tags" }); + + l.Add(new AyaFormFieldDefinition { LtKey = "UserCustom1", FieldKey = "UserCustom1", IsCustomField = true }); + l.Add(new AyaFormFieldDefinition { LtKey = "UserCustom2", FieldKey = "UserCustom2", IsCustomField = true }); + l.Add(new AyaFormFieldDefinition { LtKey = "UserCustom3", FieldKey = "UserCustom3", IsCustomField = true }); + l.Add(new AyaFormFieldDefinition { LtKey = "UserCustom4", FieldKey = "UserCustom4", IsCustomField = true }); + l.Add(new AyaFormFieldDefinition { LtKey = "UserCustom5", FieldKey = "UserCustom5", IsCustomField = true }); + l.Add(new AyaFormFieldDefinition { LtKey = "UserCustom6", FieldKey = "UserCustom6", IsCustomField = true }); + l.Add(new AyaFormFieldDefinition { LtKey = "UserCustom7", FieldKey = "UserCustom7", IsCustomField = true }); + l.Add(new AyaFormFieldDefinition { LtKey = "UserCustom8", FieldKey = "UserCustom8", IsCustomField = true }); + l.Add(new AyaFormFieldDefinition { LtKey = "UserCustom9", FieldKey = "UserCustom9", IsCustomField = true }); + l.Add(new AyaFormFieldDefinition { LtKey = "UserCustom10", FieldKey = "UserCustom10", IsCustomField = true }); + l.Add(new AyaFormFieldDefinition { LtKey = "UserCustom11", FieldKey = "UserCustom11", IsCustomField = true }); + l.Add(new AyaFormFieldDefinition { LtKey = "UserCustom12", FieldKey = "UserCustom12", IsCustomField = true }); + l.Add(new AyaFormFieldDefinition { LtKey = "UserCustom13", FieldKey = "UserCustom13", IsCustomField = true }); + l.Add(new AyaFormFieldDefinition { LtKey = "UserCustom14", FieldKey = "UserCustom14", IsCustomField = true }); + l.Add(new AyaFormFieldDefinition { LtKey = "UserCustom15", FieldKey = "UserCustom15", IsCustomField = true }); + l.Add(new AyaFormFieldDefinition { LtKey = "UserCustom16", FieldKey = "UserCustom16", IsCustomField = true }); + return l; + #endregion + } + + throw new System.ArgumentOutOfRangeException($"AyaFormFieldDefinitions: {key} is not valid"); + } public static string TranslateLTCustomFieldToInternalCustomFieldName(string lTCustomFieldName) diff --git a/server/AyaNova/biz/UserBiz.cs b/server/AyaNova/biz/UserBiz.cs index 16f0e3c0..fcb414c7 100644 --- a/server/AyaNova/biz/UserBiz.cs +++ b/server/AyaNova/biz/UserBiz.cs @@ -381,7 +381,7 @@ namespace AyaNova.Biz AddError(ApiErrorCode.VALIDATION_LENGTH_EXCEEDED, "EmployeeNumber", "255 max"); //Any form customizations to validate? - var FormCustomization = await ct.FormCustom.SingleOrDefaultAsync(x => x.FormKey == AyaFormFieldDefinitions.USER_KEY); + var FormCustomization = await ct.FormCustom.SingleOrDefaultAsync(x => x.FormKey == AyaType.User.ToString()); if (FormCustomization != null) { //Yeppers, do the validation, there are two, the custom fields and the regular fields that might be set to required diff --git a/server/AyaNova/biz/WidgetBiz.cs b/server/AyaNova/biz/WidgetBiz.cs index eb29999e..6fee30aa 100644 --- a/server/AyaNova/biz/WidgetBiz.cs +++ b/server/AyaNova/biz/WidgetBiz.cs @@ -285,7 +285,7 @@ namespace AyaNova.Biz } //Any form customizations to validate? - var FormCustomization = await ct.FormCustom.AsNoTracking().SingleOrDefaultAsync(x => x.FormKey == AyaFormFieldDefinitions.WIDGET_KEY); + var FormCustomization = await ct.FormCustom.AsNoTracking().SingleOrDefaultAsync(x => x.FormKey == AyaType.Widget.ToString()); if (FormCustomization != null) { //Yeppers, do the validation, there are two, the custom fields and the regular fields that might be set to required diff --git a/server/AyaNova/util/Seeder.cs b/server/AyaNova/util/Seeder.cs index bb27274e..78a7bc7c 100644 --- a/server/AyaNova/util/Seeder.cs +++ b/server/AyaNova/util/Seeder.cs @@ -85,7 +85,7 @@ namespace AyaNova.Util var fc = new FormCustom() { - FormKey = AyaFormFieldDefinitions.WIDGET_KEY, + FormKey = AyaType.Widget.ToString(), Template = @"[ { ""fld"": ""Notes"",