예제 #1
0
 private void ClearDataSchemaItemFilter(DataSchemaItem item)
 {
     if (!item.HasLoadedChildren)
     {
         return;
     }
     item.SetFilter((DataSchemaItemFilter)null);
     foreach (DataSchemaItem dataSchemaItem in Enumerable.OfType <DataSchemaItem>((IEnumerable)item.Children))
     {
         this.ClearDataSchemaItemFilter(dataSchemaItem);
     }
 }
예제 #2
0
        public void ProcessChildren(DataSchemaItem dataSchemaItem)
        {
            DataSchemaNodePath dataSchemaNodePath = dataSchemaItem.DataSchemaNodePath;
            DataSchemaNode     dataSchemaNode     = dataSchemaNodePath.Node;
            bool flag = true;

            while (dataSchemaNode.IsCollection && dataSchemaNode.CollectionItem != null && dataSchemaNode.CollectionItem.Type != typeof(object))
            {
                dataSchemaNode = dataSchemaNode.CollectionItem;
            }
            if (dataSchemaNode.Type == typeof(string) && !(dataSchemaItem.DataSchemaNodePath.Schema is XmlSchema))
            {
                flag = false;
            }
            else if (dataSchemaItem.SampleType is SampleBasicType)
            {
                flag = false;
            }
            else if (dataSchemaNode != dataSchemaNodePath.Node)
            {
                SampleCollectionType sampleCollectionType = dataSchemaNodePath.Node.SampleType as SampleCollectionType;
                if (sampleCollectionType != null && sampleCollectionType.ItemSampleType is SampleBasicType)
                {
                    flag = false;
                }
            }
            if (flag)
            {
                foreach (DataSchemaNode node in dataSchemaNode.Children)
                {
                    DataSchemaItem dataSchemaItem1 = new DataSchemaItem(dataSchemaNodePath.GetExtendedPath(node), this, this.model, this.itemSelectionContext);
                    dataSchemaItem.AddChild((DataModelItemBase)dataSchemaItem1);
                }
            }
            if (this.lastFilter == null)
            {
                return;
            }
            dataSchemaItem.SetFilter(this.lastFilter);
        }