public void fill(bool IsNew) { New = IsNew; CswNbtMetaDataNodeType MetaDataNodeType = _CswNbtNode.getNodeType(); foreach (CswNbtMetaDataNodeTypeProp MetaDataProp in MetaDataNodeType.getNodeTypeProps()) { DataRow PropRow = PropsTable.Rows.Cast <DataRow>().FirstOrDefault(CurrentRow => CurrentRow["nodetypepropid"].ToString() == MetaDataProp.PropId.ToString()); CswNbtNodePropWrapper AddedProp = CswNbtNodePropFactory.makeNodeProp(_CswNbtResources, PropRow, PropsTable, _CswNbtNode, MetaDataProp, _CswNbtNode._Date); _Props.Add(AddedProp); Int32 PropsIdx = _Props.Count - 1; _PropsIndexByFirstVersionPropId.Add(MetaDataProp.FirstPropVersionId, PropsIdx); _PropsIndexByNodeTypePropId.Add(MetaDataProp.PropId, PropsIdx); string ObjectClassPropName = MetaDataProp.getObjectClassPropName(); if (false == string.IsNullOrEmpty(ObjectClassPropName)) { _PropsIndexByObjectClassPropName.Add(ObjectClassPropName, PropsIdx); } AddedProp.onNodePropRowFilled(); } if (_CswNbtNode != null) { _CswNbtNode.ObjClass.triggerAfterPopulateProps(); } _Filled = true; }//fill()
private JProperty _getNode(CswNbtNode ThisNode, bool RunProps = true, NodeSpecies ThisNodeSpecies = null) { JProperty Ret = new JProperty("No Results"); if (null != ThisNode) { string ThisNodeName = ThisNode.NodeName; Ret = new JProperty(NodeIdPrefix + ThisNode.NodeId); JObject NodeProps = new JObject(); Ret.Value = NodeProps; NodeSpecies NodeSpecie = ThisNodeSpecies ?? ThisNode.NodeSpecies; if (NodeSpecies.More == NodeSpecie) { ThisNodeName = "Results Truncated at " + _MobilePageSize; } NodeProps["node_name"] = CswTools.SafeJavascriptParam(ThisNodeName); NodeProps["nodetype"] = CswTools.SafeJavascriptParam(ThisNode.getNodeType().NodeTypeName); NodeProps["objectclass"] = CswTools.SafeJavascriptParam(ThisNode.getObjectClass().ObjectClass.ToString()); NodeProps["nodespecies"] = CswTools.SafeJavascriptParam(NodeSpecie.ToString()); if (RunProps) { JObject TabsObj = new JObject(); NodeProps["tabs"] = TabsObj; _runProperties(ThisNode, TabsObj); } if (ThisNode.Locked) { NodeProps["iconfilename"] = "Images/quota/lock.gif"; } else if (false == string.IsNullOrEmpty(ThisNode.IconFileName)) { NodeProps["iconfilename"] = CswNbtMetaDataObjectClass.IconPrefix16 + CswTools.SafeJavascriptParam(ThisNode.IconFileName); } _addObjectClassProps(ThisNode, NodeProps); foreach (CswNbtMetaDataNodeTypeProp MetaDataProp in _CswNbtResources.MetaData.getNodeTypeProps(ThisNode.NodeTypeId) .Cast <CswNbtMetaDataNodeTypeProp>() .Where(MetaDataProp => MetaDataProp.MobileSearch)) { if ((MetaDataProp.getObjectClassProp() != null)) { NodeProps["search_ocp_" + MetaDataProp.ObjectClassPropId] = CswTools.SafeJavascriptParam(ThisNode.Properties[MetaDataProp].Gestalt); } else { NodeProps["search_ntp_" + MetaDataProp.PropId] = CswTools.SafeJavascriptParam(ThisNode.Properties[MetaDataProp].Gestalt); } } } return(Ret); }