DataTable IPicklistManager.GetPicklistValues(Guid tenantId, string name, QueryContext queryContext) { var result = GetPicklists(); if (result != null) { TypeInfo picklist = null; foreach (var item in result) { if (!item.BaseType.Equals(typeof(ExtendedPicklist))) { var pluralName = Utility.GetPluralName(item); if (pluralName.ToLower().Equals(name.ToLower()) || item.Name.ToLower().Equals(name.ToLower())) { picklist = item; break; } } } if (picklist != null) { PicklistBase pickListBase = (PicklistBase)Activator.CreateInstance(picklist); var isCustomizeValue = Utility.CustomizeValue(picklist); if (isCustomizeValue) { IPicklistQueryManager iPicklistQueryManager = new PicklistQueryManager(); return(iPicklistQueryManager.GetResult(tenantId, name, queryContext)); } return(pickListBase.GetValues()); } } throw new ArgumentException("Picklists not found"); }
private PicklistObject GetPicklistModel(Type item, Guid tenantId, bool getvalues = true, int pageIndex = 1, int pageSize = 10, string filters = "") { var picklist = new PicklistObject { Name = item.Name, PluralName = Utility.GetPluralName(item), DisplayName = Utility.GetDisplayName(item) }; picklist.FixedValueList = picklist.IsStandard = (typeof(SimplePicklist).IsAssignableFrom(item)); picklist.CustomizeValue = Utility.CustomizeValue(item); //(typeof(ComplexPicklist).IsAssignableFrom(item)); PicklistBase pickListBase = (PicklistBase)Activator.CreateInstance(item); picklist.Id = pickListBase.PicklistContext.GetContext(); if (item.BaseType != null) { picklist.Type = item.BaseType.Name; } if (!getvalues) { return(picklist); } picklist.Values = new List <PicklistValueV1> (); DataTable picklistValues = null; if (picklist.FixedValueList) { picklistValues = pickListBase.GetValues(); } else { IPicklistQueryManager iEntityResourceManager = new PicklistQueryManager(); QueryContext query = MetadataHelper.GetQueryContext(item.Name, pageIndex, pageSize, filters); picklistValues = iEntityResourceManager.GetResult(tenantId, item.Name.ToLower(), query); } if (picklistValues == null) { return(picklist); } List <PicklistValueV1> lists = Utility.ConvertDataTable <PicklistValueV1> (picklistValues); foreach (var list in lists) { list.PicklistId = picklist.Id; } picklist.Values.AddRange(lists); return(picklist); }