public JObject GetQuotas() { JObject ret = new JObject(); Dictionary <Int32, Int32> NodeCountsForNodeType; Dictionary <Int32, Int32> NodeCountsForObjectClass; _CswNbtActQuotas.GetNodeCounts(out NodeCountsForNodeType, out NodeCountsForObjectClass); ret["canedit"] = _CanEditQuotas.ToString().ToLower(); ret["objectclasses"] = new JObject(); foreach (CswNbtMetaDataObjectClass ObjectClass in from _ObjectClass in _CswNbtResources.MetaData.getObjectClasses() orderby _ObjectClass.ObjectClass select _ObjectClass) { string OCId = "oc_" + ObjectClass.ObjectClassId.ToString(); ret["objectclasses"][OCId] = new JObject(); ret["objectclasses"][OCId]["objectclass"] = ObjectClass.ObjectClass.ToString(); ret["objectclasses"][OCId]["objectclassid"] = ObjectClass.ObjectClassId.ToString(); if (NodeCountsForObjectClass.ContainsKey(ObjectClass.ObjectClassId)) { ret["objectclasses"][OCId]["currentusage"] = NodeCountsForObjectClass[ObjectClass.ObjectClassId]; } else { ret["objectclasses"][OCId]["currentusage"] = "0"; } if (ObjectClass.Quota != Int32.MinValue) { ret["objectclasses"][OCId]["quota"] = ObjectClass.Quota; } else { ret["objectclasses"][OCId]["quota"] = ""; } ret["objectclasses"][OCId]["nodetypecount"] = ObjectClass.getNodeTypes().Count().ToString(); ret["objectclasses"][OCId]["excludeinquotabar"] = ObjectClass.ExcludeInQuotaBar; bool readOnly = ObjectClass.ObjectClass == CswEnumNbtObjectClass.InventoryGroupClass && false == _CswNbtResources.Modules.IsModuleEnabled(CswEnumNbtModuleName.MultiInventoryGroup); //case 29298 ret["objectclasses"][OCId]["readonly"] = readOnly; ret["objectclasses"][OCId]["nodetypes"] = new JObject(); foreach (CswNbtMetaDataNodeType NodeType in from _NodeType in ObjectClass.getNodeTypes() orderby _NodeType.NodeTypeName select _NodeType) { if (NodeType.IsLatestVersion()) { Int32 NodeTypeId = NodeType.FirstVersionNodeTypeId; string NodeTypeName = NodeType.NodeTypeName; Int32 Quota = NodeType.getFirstVersionNodeType().Quota; string NTId = "nt_" + NodeType.FirstVersionNodeTypeId.ToString(); ret["objectclasses"][OCId]["nodetypes"][NTId] = new JObject(); ret["objectclasses"][OCId]["nodetypes"][NTId]["nodetypename"] = NodeTypeName; ret["objectclasses"][OCId]["nodetypes"][NTId]["nodetypeid"] = NodeTypeId; ret["objectclasses"][OCId]["nodetypes"][NTId]["excludeinquotabar"] = NodeType.ExcludeInQuotaBar; ret["objectclasses"][OCId]["nodetypes"][NTId]["readonly"] = readOnly || (NodeTypeName.Equals("Site") && false == _CswNbtResources.Modules.IsModuleEnabled(CswEnumNbtModuleName.MultiSite)); //case 29298 if (NodeCountsForNodeType.ContainsKey(NodeTypeId)) { ret["objectclasses"][OCId]["nodetypes"][NTId]["currentusage"] = NodeCountsForNodeType[NodeTypeId]; } else { ret["objectclasses"][OCId]["nodetypes"][NTId]["currentusage"] = "0"; } if (Quota != Int32.MinValue) { ret["objectclasses"][OCId]["nodetypes"][NTId]["quota"] = Quota; } else { ret["objectclasses"][OCId]["nodetypes"][NTId]["quota"] = ""; } } // if( NodeType.IsLatestVersion ) } // foreach( CswNbtMetaDataNodeType NodeType in ObjectClass.NodeTypes ) } // foreach( CswNbtMetaDataObjectClass ObjectClass in _CswNbtResources.MetaData.ObjectClasses ) return(ret); } // GetQuotas()