public static CswNbtView LocationPropertyView(CswNbtResources CswNbtResources, CswNbtMetaDataNodeTypeProp Prop, CswPrimaryKey NodeId = null, IEnumerable <CswPrimaryKey> InventoryGroupIds = null, CswEnumNbtFilterResultMode ResultMode = null, string FullPathFilter = "") { CswNbtMetaDataObjectClass ContainerOC = CswNbtResources.MetaData.getObjectClass(CswEnumNbtObjectClass.ContainerClass); CswNbtMetaDataObjectClass UserOC = CswNbtResources.MetaData.getObjectClass(CswEnumNbtObjectClass.UserClass); CswNbtMetaDataObjectClass RequestItemOC = CswNbtResources.MetaData.getObjectClass(CswEnumNbtObjectClass.RequestItemClass); //TODO (Case 31016): This is pretty hack-a-delic - we should convert these into prop attributes (like RespectAllowInventory, DisableLowestLevel, and IncludeRoot) bool IsLocationNode = (null != Prop && Prop.getNodeType().getObjectClass().ObjectClass == CswEnumNbtObjectClass.LocationClass); bool IsContainerNode = (null != Prop && null != ContainerOC && Prop.getNodeType().ObjectClassId == ContainerOC.ObjectClassId); bool IsUserNode = (null != Prop && null != UserOC && Prop.getNodeType().ObjectClassId == UserOC.ObjectClassId); bool IsRequestItemNode = (null != Prop && null != RequestItemOC && Prop.getNodeType().ObjectClassId == RequestItemOC.ObjectClassId); CswNbtView Ret = new CswNbtView(CswNbtResources); Ret.ViewName = GetTopLevelName(CswNbtResources); Ret.Root.Included = IsLocationNode; CswNbtObjClassLocation.makeLocationsTreeView(ref Ret, CswNbtResources, NodeIdToFilterOut: NodeId, RequireAllowInventory: (CswNbtResources.Modules.IsModuleEnabled(CswEnumNbtModuleName.Containers) && (IsContainerNode || IsUserNode || IsRequestItemNode)), InventoryGroupIds: InventoryGroupIds, DisableLowestLevel: IsLocationNode, ResultMode: ResultMode, FullPathFilter: FullPathFilter); return(Ret); }
public static void getLocationTree(ICswResources CswResources, Contract.Response Response, object Request) { CswNbtResources Resources = (CswNbtResources)CswResources; CswNbtView View = new CswNbtView(Resources); CswNbtObjClassLocation.makeLocationsTreeView(ref View, Resources); View.SaveToCache(false, false); Response.Data.ViewId = View.SessionViewId; } //getLocationTree()
public override void update() { // Update existing 'Locations' view for Order change { CswNbtView LocationsView = _CswNbtSchemaModTrnsctn.ViewSelect.restoreView( "Locations", NbtViewVisibility.Global ); if( null != LocationsView ) { CswNbtObjClassLocation.makeLocationsTreeView( ref LocationsView, _CswNbtSchemaModTrnsctn ); LocationsView.save(); } } // Also fix the Equipment by Location view { CswNbtView EquipByLocView = _CswNbtSchemaModTrnsctn.ViewSelect.restoreView( "Equipment By Location", NbtViewVisibility.Global ); if( null != EquipByLocView ) { CswNbtObjClassLocation.makeLocationsTreeView( ref EquipByLocView, _CswNbtSchemaModTrnsctn ); CswNbtMetaDataObjectClass EquipmentOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( NbtObjectClass.EquipmentClass ); CswNbtMetaDataNodeType EquipmentNT = EquipmentOC.FirstNodeType; CswNbtMetaDataNodeTypeProp EquipmentLocationNTP = null; if( null != EquipmentNT ) { EquipmentLocationNTP = EquipmentNT.getNodeTypeProp( "Location" ); } CswNbtMetaDataObjectClass AssemblyOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( NbtObjectClass.EquipmentAssemblyClass ); CswNbtMetaDataNodeType AssemblyNT = AssemblyOC.FirstNodeType; CswNbtMetaDataNodeTypeProp AssemblyLocationNTP = null; if( null != AssemblyNT ) { AssemblyLocationNTP = AssemblyNT.getNodeTypeProp( "Location" ); } foreach( CswNbtViewRelationship LocRel in EquipByLocView.Root.GetAllChildrenOfType( NbtViewNodeType.CswNbtViewRelationship ) ) { if( null != EquipmentLocationNTP ) { EquipByLocView.AddViewRelationship( LocRel, NbtViewPropOwnerType.Second, EquipmentLocationNTP, true ); } if( null != AssemblyLocationNTP ) { EquipByLocView.AddViewRelationship( LocRel, NbtViewPropOwnerType.Second, AssemblyLocationNTP, true ); } } EquipByLocView.save(); } } } //Update()