public static void getBulkEditProperties(ICswResources CswResources, BulkEditProperties ret, BulkEditParams Params) { CswNbtResources NbtResources = (CswNbtResources)CswResources; CswNbtMetaDataNodeType NodeType = NbtResources.MetaData.getNodeType(Params.NodeTypeId); if (null != NodeType) { ret.Data = new Collection <BulkEditProperty>(); if (NbtResources.Permit.canNodeType(CswEnumNbtNodeTypePermission.View, NodeType)) { foreach (CswNbtMetaDataNodeTypeProp Prop in NodeType.getNodeTypeProps() .Where(p => false == p.getFieldType().IsDisplayType() && p.getFieldType().FieldType != CswEnumNbtFieldType.File && p.getFieldType().FieldType != CswEnumNbtFieldType.Image && p.getFieldType().FieldType != CswEnumNbtFieldType.ImageList && p.getFieldType().FieldType != CswEnumNbtFieldType.LogicalSet && p.getFieldType().FieldType != CswEnumNbtFieldType.MOL && p.getFieldType().FieldType != CswEnumNbtFieldType.MetaDataList && p.getFieldType().FieldType != CswEnumNbtFieldType.Password && p.getFieldType().FieldType != CswEnumNbtFieldType.TimeInterval && p.getFieldType().FieldType != CswEnumNbtFieldType.ViewPickList && p.getFieldType().FieldType != CswEnumNbtFieldType.ViewReference) .OrderBy(p => p.PropName)) { ret.Data.Add(new BulkEditProperty() { id = Prop.PropId, name = Prop.PropNameWithQuestionNo }); } } } } // getBulkEditProperties()
} // DownloadBulkEditData() private static void _recurseBulkEditData(CswNbtMetaDataNodeType NodeType, ICswNbtTree Tree, BulkEditDownload ret, BulkEditParams Params) { for (Int32 n = 0; n < Tree.getChildNodeCount(); n++) { Tree.goToNthChild(n); if (Tree.getNodeKeyForCurrentPosition().NodeTypeId == Params.NodeTypeId) { _addNodeToData(NodeType, Tree.getCurrentNode(), ret, Params); } _recurseBulkEditData(NodeType, Tree, ret, Params); Tree.goToParentNode(); } } // _recurseBulkEditData()
} // _recurseBulkEditData() private static void _addNodeToData(CswNbtMetaDataNodeType NodeType, CswNbtNode Node, BulkEditDownload ret, BulkEditParams Params) { DataRow row = ret.CsvData.NewRow(); row["nodeid"] = Node.NodeId.ToString(); foreach (Int32 PropId in Params.PropIds) { CswNbtMetaDataNodeTypeProp Prop = NodeType.getNodeTypeProp(PropId); if (Prop.getFieldTypeRule().SubFields.Count > 1) { foreach (CswNbtSubField SubField in Prop.getFieldTypeRule().SubFields) { row[Prop.PropName + " " + SubField.Name] = Node.Properties[Prop].GetSubFieldValue(SubField); } } else { row[Prop.PropName] = Node.Properties[Prop].GetSubFieldValue(Prop.getFieldTypeRule().SubFields.Default); } } ret.CsvData.Rows.Add(row); } // _addNodeToData()
} // getBulkEditProperties() public static void DownloadBulkEditData(ICswResources CswResources, BulkEditDownload ret, BulkEditParams Params) { CswNbtResources NbtResources = (CswNbtResources)CswResources; CswNbtMetaDataNodeType NodeType = NbtResources.MetaData.getNodeType(Params.NodeTypeId); if (null != NodeType) { ret.CsvData = new DataTable(); ret.CsvData.Columns.Add("nodeid"); foreach (Int32 PropId in Params.PropIds) { CswNbtMetaDataNodeTypeProp Prop = NodeType.getNodeTypeProp(PropId); if (Prop.getFieldTypeRule().SubFields.Count > 1) { foreach (CswNbtSubField SubField in Prop.getFieldTypeRule().SubFields) { ret.CsvData.Columns.Add(Prop.PropName + " " + SubField.Name); } } else { ret.CsvData.Columns.Add(Prop.PropName); } } CswNbtView View = NbtResources.ViewSelect.restoreView(new CswNbtViewId(Params.ViewId)); ICswNbtTree Tree = NbtResources.Trees.getTreeFromView(View, RequireViewPermissions: true, IncludeSystemNodes: false, IncludeHiddenNodes: false); _recurseBulkEditData(NodeType, Tree, ret, Params); } } // DownloadBulkEditData()