コード例 #1
0
        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");
        }
コード例 #2
0
        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);
        }