Пример #1
0
        public CswNbtSearch getSearch(string SearchTerm, CswEnumSqlLikeMode SearchType, Int32 NodeTypeId, Int32 ObjectClassId, Int32 PropertySetId)
        {
            CswNbtSearch Search = new CswNbtSearch(_CswNbtResources)
            {
                SearchTerm = SearchTerm,
                SearchType = SearchType
            };

            if (Int32.MinValue != NodeTypeId)
            {
                CswNbtMetaDataNodeType NodeType = _CswNbtResources.MetaData.getNodeType(NodeTypeId);
                if (null != NodeType)
                {
                    Search.addFilter(NodeType, false);
                }
            }
            if (Int32.MinValue != ObjectClassId)
            {
                CswNbtMetaDataObjectClass ObjectClass = _CswNbtResources.MetaData.getObjectClass(ObjectClassId);
                if (null != ObjectClass)
                {
                    Search.addFilter(ObjectClass, false);
                }
            }
            if (Int32.MinValue != PropertySetId)
            {
                CswNbtMetaDataPropertySet PropertySet = _CswNbtResources.MetaData.getPropertySet(PropertySetId);
                if (null != PropertySet)
                {
                    Search.addFilter(PropertySet, false);
                }
            }
            return(Search);
        }
Пример #2
0
        }//ctor

        #region UniversalSearch

        public JObject doUniversalSearch(string SearchTerm, CswEnumSqlLikeMode SearchType, Int32 NodeTypeId, Int32 ObjectClassId, Int32 PropertySetId, Int32 Page, Int32 PageLimit, bool OnlyMergeableNodeTypes, List <string> ExcludeNodeIds, bool IncludeInRecent)
        {
            CswNbtSearch Search = getSearch(SearchTerm, SearchType, NodeTypeId, ObjectClassId, PropertySetId);

            Search.OnlyMergeableNodeTypes = OnlyMergeableNodeTypes;
            Search.ExcludeNodeIds         = ExcludeNodeIds;
            return(_finishUniversalSearch(Search, Page, PageLimit, IncludeInRecent));
        }
        private bool _validateItem(ref OperationData OpData)
        {
            bool ret = false;

            CswNbtSearch search = new CswNbtSearch(_CswNbtResources)
            {
                SearchTerm = OpData.Field2.Value,
                SearchType = CswEnumSqlLikeMode.Exact
            };
            ICswNbtTree tree = search.Results();

            int childCount = tree.getChildNodeCount();

            for (int i = 0; i < childCount; i++)
            {
                tree.goToNthChild(i);
                CswNbtNode                 node        = tree.getNodeForCurrentPosition();
                CswNbtMetaDataNodeType     nodeType    = node.getNodeType();
                CswNbtMetaDataNodeTypeProp barcodeProp = (CswNbtMetaDataNodeTypeProp)nodeType.getBarcodeProperty();

                if (null != barcodeProp)
                {
                    string barcodeValue = node.Properties[barcodeProp].AsBarcode.Barcode;
                    string ObjClass     = node.ObjClass.ObjectClass.ObjectClass;

                    if (string.Equals(barcodeValue, OpData.Field2.Value, StringComparison.CurrentCultureIgnoreCase))
                    {
                        if (ObjClass == CswEnumNbtObjectClass.EquipmentAssemblyClass)
                        {
                            OpData.Field2.FoundObjClass = CswEnumNbtObjectClass.EquipmentAssemblyClass;
                            OpData.Field2.NodeIdStr     = tree.getNodeIdForCurrentPosition().ToString();
                            ret = true;
                        }

                        if (ObjClass == CswEnumNbtObjectClass.EquipmentClass)
                        {
                            OpData.Field2.FoundObjClass = CswEnumNbtObjectClass.EquipmentClass;
                            OpData.Field2.NodeIdStr     = tree.getNodeIdForCurrentPosition().ToString();
                            ret = true;
                        }
                    }
                }
                tree.goToParentNode();
            }

            if (string.IsNullOrEmpty(OpData.Field2.FoundObjClass))
            {
                string StatusMsg = "Could not find " + CswEnumNbtObjectClass.EquipmentClass.Replace("Class", "");
                StatusMsg += " or " + CswEnumNbtObjectClass.EquipmentAssemblyClass.Replace("Class", "") + " with barcode " + OpData.Field2.Value;

                OpData.Field2.StatusMsg       = StatusMsg;
                OpData.Field2.ServerValidated = false;
                OpData.Log.Add(DateTime.Now + " - ERROR: " + StatusMsg);
                ret = false;
            }

            return(ret);
        }
Пример #4
0
        } // saveSearch

        public JObject deleteSearch(CswPrimaryKey SearchId, int Limit)
        {
            CswNbtSearch doomedSearch = _CswNbtResources.SearchManager.restoreSearch(SearchId);

            if (null != doomedSearch)
            {
                doomedSearch.delete();
            }
            return(_finishUniversalSearch(doomedSearch, PageLimit: Limit));
        } // deleteSearch
Пример #5
0
        } // restoreUniversalSearch()

        public JObject restoreUniversalSearch(CswNbtSessionDataId SessionDataId, int Limit)
        {
            JObject ret = new JObject();
            CswNbtSessionDataItem SessionDataItem = _CswNbtResources.SessionDataMgr.getSessionDataItem(SessionDataId);

            if (null != SessionDataItem && SessionDataItem.DataType == CswEnumNbtSessionDataType.Search)
            {
                CswNbtSearch Search = SessionDataItem.Search;
                ret = _finishUniversalSearch(Search, PageLimit: Limit);
            }
            return(ret);
        } // restoreUniversalSearch()
Пример #6
0
        public JObject filterUniversalSearchByNodeType(CswNbtSessionDataId SessionDataId, Int32 NodeTypeId, int Limit)
        {
            JObject ret = new JObject();
            CswNbtSessionDataItem SessionDataItem = _CswNbtResources.SessionDataMgr.getSessionDataItem(SessionDataId);

            if (SessionDataItem.DataType == CswEnumNbtSessionDataType.Search)
            {
                CswNbtSearch Search = SessionDataItem.Search;
                Search.addFilter(NodeTypeId, true);
                ret = _finishUniversalSearch(Search, PageLimit: Limit);
            }
            return(ret);
        }
Пример #7
0
        public JObject saveSearch(CswNbtSessionDataId SessionDataId, string Name, string Category, int Limit)
        {
            JObject ret = new JObject();
            CswNbtSessionDataItem SessionDataItem = _CswNbtResources.SessionDataMgr.getSessionDataItem(SessionDataId);

            if (SessionDataItem.DataType == CswEnumNbtSessionDataType.Search)
            {
                CswNbtSearch Search = SessionDataItem.Search;
                Search.Name     = Name;
                Search.Category = Category;
                Search.SaveToDb();
                ret = _finishUniversalSearch(Search, PageLimit: Limit);
            }
            return(ret);
        } // saveSearch
Пример #8
0
        private JObject _finishUniversalSearch(CswNbtSearch Search, Int32 Page = 0, Int32 PageLimit = 0, bool IncludeInRecent = true)
        {
            ICswNbtTree           Tree    = Search.Results();
            CswNbtWebServiceTable wsTable = new CswNbtWebServiceTable(_CswNbtResources, _CswNbtStatisticsEvents, Int32.MinValue);

            Search.SaveToCache(IncludeInRecent);

            JObject ret = Search.ToJObject();

            ret["table"]           = wsTable.makeTableFromTree(Tree, Search.getFilteredPropIds(), Page, PageLimit);
            ret["filters"]         = Search.FilterOptions(Tree);
            ret["searchtarget"]    = "universal";
            ret["searchtype"]      = Search.SearchType.ToString();
            ret["alternateoption"] = _CswNbtResources.Modules.IsModuleEnabled(CswEnumNbtModuleName.C3);

            return(ret);
        }
Пример #9
0
 public override void update()
 {
     CswNbtMetaDataObjectClass ReportOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.ReportClass );
     CswNbtSearch FindReport = _CswNbtSchemaModTrnsctn.CswNbtSearch;
     FindReport.addFilter( ReportOC, false );
     FindReport.SearchType = CswEnumSqlLikeMode.Exact;
     FindReport.SearchTerm = "Kiosk Mode";
     ICswNbtTree SearchResults = FindReport.Results();
     for( Int32 r = 0; r < SearchResults.getChildNodeCount(); r++ )
     {
         SearchResults.goToNthChild( r );
         CswNbtObjClassReport ReportNode = SearchResults.getNodeForCurrentPosition();
         ReportNode.ReportName.Text = "Kiosk Mode Barcodes";
         ReportNode.postChanges( false );
         SearchResults.goToParentNode();
     }
 } // update()
 public override void update()
 {
     CswNbtMetaDataObjectClass ReportOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.ReportClass );
     CswNbtSearch FindReport = _CswNbtSchemaModTrnsctn.CswNbtSearch;
     FindReport.addFilter( ReportOC, false );
     FindReport.SearchType = CswEnumSqlLikeMode.Begins;
     FindReport.SearchTerm = "HMIS";
     ICswNbtTree SearchResults = FindReport.Results();
     for( Int32 r = 0; r < SearchResults.getChildNodeCount(); r++ )
     {
         SearchResults.goToNthChild( r );
         CswNbtObjClassReport ReportNode = SearchResults.getNodeForCurrentPosition();
         ReportNode.WebService.Text = ReportNode.WebService.Text.Replace( "{Name}", "{Control_Zone}" );
         ReportNode.postChanges( false );
         SearchResults.goToParentNode();
     }
 } // update()
        public override void update()
        {
            CswPrimaryKey HMISTotalsReportId = null;
            CswPrimaryKey HMISMaterialsReportId = null;

            CswNbtMetaDataObjectClass ReportOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.ReportClass );

            CswNbtSearch FindReport = _CswNbtSchemaModTrnsctn.CswNbtSearch;
            FindReport.addFilter( ReportOC, false );
            FindReport.SearchType = CswEnumSqlLikeMode.Begins;
            FindReport.SearchTerm = "HMIS";
            ICswNbtTree SearchResults = FindReport.Results();
            for( Int32 r = 0; r < SearchResults.getChildNodeCount(); r++ )
            {
                SearchResults.goToNthChild( r );
                string ReportName = SearchResults.getNodeNameForCurrentPosition();
                if( ReportName == "HMIS Totals" )
                {
                    HMISTotalsReportId = SearchResults.getNodeIdForCurrentPosition();
                }
                if( ReportName == "HMIS Materials" )
                {
                    HMISMaterialsReportId = SearchResults.getNodeIdForCurrentPosition();
                }
                SearchResults.goToParentNode();
            } // for( Int32 r = 0; r < SearchResults.getChildNodeCount(); r++ )

            CswNbtMetaDataObjectClass ControlZoneOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.ControlZoneClass );
            foreach( CswNbtMetaDataNodeType ControlZoneNT in ControlZoneOC.getNodeTypes() )
            {
                if( CswTools.IsPrimaryKey( HMISTotalsReportId ) )
                {
                    CswNbtMetaDataNodeTypeProp HMISTotalsNTP = ControlZoneNT.getNodeTypePropByObjectClassProp( CswNbtObjClassControlZone.PropertyName.HMISTotals );
                    HMISTotalsNTP.SetFK( "nodeid", HMISTotalsReportId.PrimaryKey );
                    HMISTotalsNTP.removeFromLayout( CswEnumNbtLayoutType.Add );
                }
                if( CswTools.IsPrimaryKey( HMISMaterialsReportId ) )
                {
                    CswNbtMetaDataNodeTypeProp HMISMaterialsNTP = ControlZoneNT.getNodeTypePropByObjectClassProp( CswNbtObjClassControlZone.PropertyName.HMISMaterials );
                    HMISMaterialsNTP.SetFK( "nodeid", HMISMaterialsReportId.PrimaryKey );
                    HMISMaterialsNTP.removeFromLayout( CswEnumNbtLayoutType.Add );
                }
            } // foreach( CswNbtMetaDataNodeType ControlZoneNT in ControlZoneOC.getNodeTypes() )

        } // update()
Пример #12
0
        public static void getKioskModeBarcodeReport(ICswResources CswResources, KioskModeDataReturn Return, object KioskModeData)
        {
            CswNbtResources           NbtResources = (CswNbtResources)CswResources;
            CswNbtMetaDataObjectClass ReportOC     = NbtResources.MetaData.getObjectClass(CswEnumNbtObjectClass.ReportClass);
            CswNbtSearch FindReport = new CswNbtSearch(NbtResources);

            FindReport.addFilter(ReportOC, false);
            FindReport.SearchType = CswEnumSqlLikeMode.Exact;
            FindReport.SearchTerm = "Kiosk Mode Barcodes";
            ICswNbtTree SearchResults = FindReport.Results();

            if (SearchResults.getChildNodeCount() > 0)
            {
                SearchResults.goToNthChild(0);
                CswNbtObjClassReport ReportNode = SearchResults.getNodeForCurrentPosition();
                Return.Data.ReportNode = ReportNode.NodeId.ToString();
                SearchResults.goToParentNode();
            }
        }
Пример #13
0
        public TierIIData getDuplicateMaterialsReport()
        {
            TierIIData Data = new TierIIData();
            CswNbtMetaDataObjectClass ReportOC = _CswNbtResources.MetaData.getObjectClass(CswEnumNbtObjectClass.ReportClass);
            CswNbtSearch FindReport            = new CswNbtSearch(_CswNbtResources);

            FindReport.addFilter(ReportOC, false);
            FindReport.SearchType = CswEnumSqlLikeMode.Exact;
            FindReport.SearchTerm = "Duplicate Chemicals";
            ICswNbtTree SearchResults = FindReport.Results();

            if (SearchResults.getChildNodeCount() > 0)
            {
                SearchResults.goToNthChild(0);
                CswNbtObjClassReport ReportNode = SearchResults.getNodeForCurrentPosition();
                Data.DuplicateMaterialsReportId = ReportNode.NodeId.ToString();
                SearchResults.goToParentNode();
            }
            return(Data);
        }
Пример #14
0
        } // saveSessionData(Action)

        /// <summary>
        /// Save a search to the session data collection.
        /// </summary>
        public CswNbtSessionDataId saveSessionData( CswNbtSearch Search, bool IncludeInQuickLaunch, bool KeepInQuickLaunch = false )
        {
            CswTableUpdate SessionViewsUpdate = _CswNbtResources.makeCswTableUpdate( "saveSessionView_update", SessionDataTableName );
            DataTable SessionViewTable = null;
            if( Search.SessionDataId != null )
            {
                SessionViewTable = SessionViewsUpdate.getTable( SessionDataColumn_PrimaryKey, Search.SessionDataId.get(), "where sessionid = '" + SessionId + "'", false );
            }
            else
            {
                SessionViewTable = SessionViewsUpdate.getEmptyTable();
            }
            DataRow SessionViewRow = _getSessionViewRow( SessionViewTable, Search.Name, CswEnumNbtSessionDataType.Search, IncludeInQuickLaunch, KeepInQuickLaunch );
            //SessionViewRow[SessionDataColumn_SearchId] = CswConvert.ToDbVal( Search.SearchId );
            SessionViewRow[SessionDataColumn_ViewXml] = Search.ToString();
            SessionViewsUpdate.update( SessionViewTable );

            return new CswNbtSessionDataId( CswConvert.ToInt32( SessionViewRow[SessionDataColumn_PrimaryKey] ) );

        } // saveSessionData(Search)
Пример #15
0
        } // restoreUniversalSearch()

        public JObject filterUniversalSearch(CswNbtSessionDataId SessionDataId, JObject Filter, string Action, int Limit)
        {
            JObject ret = new JObject();
            CswNbtSessionDataItem SessionDataItem = _CswNbtResources.SessionDataMgr.getSessionDataItem(SessionDataId);

            if (SessionDataItem.DataType == CswEnumNbtSessionDataType.Search)
            {
                CswNbtSearch Search = SessionDataItem.Search;
                if (Action == "add")
                {
                    Search.addFilter(Filter);
                }
                else
                {
                    Search.removeFilter(Filter);
                }
                ret = _finishUniversalSearch(Search, PageLimit: Limit);
            }
            return(ret);
        }
Пример #16
0
        public void Search(CswNbtResourceCollection Return, CswNbtApiSearchRequest SearchRequest)
        {
            try
            {
                int filter_nt_id = Int32.MinValue;
                if (false == String.IsNullOrEmpty(SearchRequest.NodeType))
                {
                    filter_nt_id = _CswNbtResources.MetaData.getNodeType(SearchRequest.NodeType).NodeTypeId;
                }

                CswNbtWebServiceSearch searchService = new CswNbtWebServiceSearch(_CswNbtResources, null);
                CswNbtSearch           search        = searchService.getSearch(SearchRequest.Query, SearchRequest.SearchType, filter_nt_id, Int32.MinValue, Int32.MinValue);
                ICswNbtTree            results       = search.Results();
                for (int i = 0; i < results.getChildNodeCount(); i++)
                {
                    results.goToNthChild(i);
                    CswNbtNodeKey             NodeKey     = results.getNodeKeyForCurrentPosition();
                    string                    Name        = results.getNodeNameForCurrentPosition();
                    CswNbtMetaDataNodeType    nt          = _CswNbtResources.MetaData.getNodeType(NodeKey.NodeTypeId);
                    CswNbtMetaDataObjectClass oc          = nt.getObjectClass();
                    CswNbtMetaDataPropertySet propSet     = oc.getPropertySet();
                    string                    PropSetName = string.Empty;
                    if (null != propSet)
                    {
                        PropSetName = propSet.Name;
                    }

                    Return.Add(Name, NodeKey.NodeId, nt.NodeTypeName, oc.ObjectClassName, PropSetName, BuildURI(nt.NodeTypeName, NodeKey.NodeId.PrimaryKey));
                    results.goToParentNode();
                }

                Return.Status = HttpStatusCode.OK;
            }
            catch (Exception)
            {
                Return.Status = HttpStatusCode.InternalServerError;
            }
        }
        // See CIS-52705 and schema script CswUpdateMetaData02K_Case31853
        public override void update()
        {
            // Change Control Zone "Name" property to "Control Zone Name"
            CswNbtMetaDataObjectClass ControlZoneOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.ControlZoneClass );
            CswNbtMetaDataObjectClassProp CzNameOCP = ControlZoneOC.getObjectClassProp( "Name" );
            _CswNbtSchemaModTrnsctn.MetaData.UpdateObjectClassProp( CzNameOCP, CswEnumNbtObjectClassPropAttributes.propname, "Control Zone Name" );


            // Update parameter name in HMIS reports to "Control Zone Name"
            CswNbtMetaDataObjectClass ReportOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.ReportClass );
            CswNbtSearch FindReport = _CswNbtSchemaModTrnsctn.CswNbtSearch;
            FindReport.addFilter( ReportOC, false );
            FindReport.SearchType = CswEnumSqlLikeMode.Begins;
            FindReport.SearchTerm = "HMIS";
            ICswNbtTree SearchResults = FindReport.Results();
            for( Int32 r = 0; r < SearchResults.getChildNodeCount(); r++ )
            {
                SearchResults.goToNthChild( r );
                CswNbtObjClassReport ReportNode = SearchResults.getNodeForCurrentPosition();
                ReportNode.WebService.Text = ReportNode.WebService.Text.Replace( "{Control_Zone}", "{Control Zone Name}" );
                ReportNode.postChanges( false );
                SearchResults.goToParentNode();
            }
        } // update()
Пример #18
0
        public override void setItemDataForUI(DataRow LandingPageRow, LandingPageData.Request Request)
        {
            bool   finishLoading = false; //this will be set to true if and only if there's a valid link to be made
            String DisplayText   = LandingPageRow["displaytext"].ToString();
            Int32  ViewId        = CswConvert.ToInt32(LandingPageRow["to_nodeviewid"]);

            if (ViewId != Int32.MinValue)
            {
                CswNbtViewId NodeViewId = new CswNbtViewId(ViewId);
                CswNbtView   ThisView   = _CswNbtResources.ViewSelect.restoreView(NodeViewId);
                if (null != ThisView && ThisView.IsFullyEnabled() && ThisView.IsVisible())
                {
                    finishLoading  = true;
                    _ItemData.Text = LandingPageRow["displaytext"].ToString() != string.Empty ? LandingPageRow["displaytext"].ToString() : ThisView.ViewName;

                    _ItemData.ViewId   = NodeViewId.ToString();
                    _ItemData.ViewMode = ThisView.ViewMode.ToString().ToLower();
                    if (ThisView.Root.ChildRelationships.Count > 0 && ThisView.Root.ChildRelationships[0] != null)
                    {
                        _ItemData.ButtonIcon = CswNbtMetaDataObjectClass.IconPrefix100 + ThisView.Root.ChildRelationships[0].SecondIconFileName;
                    }
                    _ItemData.Type = "view";
                }
            }
            Int32 ActionId = CswConvert.ToInt32(LandingPageRow["to_actionid"]);

            if (ActionId != Int32.MinValue)
            {
                CswNbtAction ThisAction = _CswNbtResources.Actions[ActionId];
                if (null != ThisAction)
                {
                    if (_CswNbtResources.Permit.can(ThisAction.Name))
                    {
                        finishLoading        = true;
                        _ItemData.Text       = false == String.IsNullOrEmpty(DisplayText) ? DisplayText : CswNbtAction.ActionNameEnumToString(ThisAction.Name);
                        _ItemData.ActionId   = ActionId.ToString();
                        _ItemData.ActionName = ThisAction.Name.ToString();
                        _ItemData.ActionUrl  = ThisAction.Url;
                        _ItemData.ButtonIcon = CswNbtMetaDataObjectClass.IconPrefix100 + ThisAction.IconFileName;
                        _ItemData.Type       = "action";
                    }
                }
            }
            Int32 ReportId = CswConvert.ToInt32(LandingPageRow["to_reportid"]);

            if (ReportId != Int32.MinValue)
            {
                CswPrimaryKey ReportPk       = new CswPrimaryKey("nodes", ReportId);
                CswNbtNode    ThisReportNode = _CswNbtResources.Nodes[ReportPk];
                if (null != ThisReportNode)
                {
                    finishLoading        = true;
                    _ItemData.Text       = false == String.IsNullOrEmpty(DisplayText) ? DisplayText : ThisReportNode.NodeName;
                    _ItemData.ReportId   = ReportPk.ToString();
                    _ItemData.Type       = "report";
                    _ItemData.ButtonIcon = CswNbtMetaDataObjectClass.IconPrefix100 + ThisReportNode.getNodeType().IconFileName;
                }
            }
            Int32 SearchId = CswConvert.ToInt32(LandingPageRow["to_searchid"]);

            if (SearchId != Int32.MinValue)
            {
                CswPrimaryKey SearchPk = new CswPrimaryKey("search", SearchId);
                CswNbtSearch  Search   = _CswNbtResources.SearchManager.restoreSearch(SearchPk);
                if (null != Search)
                {
                    finishLoading        = true;
                    _ItemData.Text       = Search.Name;
                    _ItemData.ReportId   = SearchPk.ToString();
                    _ItemData.Type       = "search";
                    _ItemData.ButtonIcon = CswNbtMetaDataObjectClass.IconPrefix100 + "magglass.png";
                }
            }

            //we only want to send the item back with a landingpageid if it contains a valid link
            if (finishLoading)
            {
                _setCommonItemDataForUI(LandingPageRow);
            }
        }
Пример #19
0
        public override void update()
        {
            //Create action
            _CswNbtSchemaModTrnsctn.createAction( CswEnumNbtActionName.Manage_Locations, true, "", "System" );
            _CswNbtSchemaModTrnsctn.createModuleActionJunction( CswEnumNbtModuleName.CISPro.ToString(), CswEnumNbtActionName.Manage_Locations );

            //Make inventory group property required
            CswNbtMetaDataObjectClass LocationOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.LocationClass );
            if( null != LocationOC )
            {

                CswNbtMetaDataObjectClass InventoryGroupOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.InventoryGroupClass );
                if( null != InventoryGroupOC )
                {
                    CswNbtMetaDataObjectClassProp InventoryGroupOCP = LocationOC.getObjectClassProp( CswNbtObjClassLocation.PropertyName.InventoryGroup );
                    if( null != InventoryGroupOCP )
                    {

                        CswNbtSearch InventoryGroupNodeSearch = _CswNbtSchemaModTrnsctn.CswNbtSearch;
                        InventoryGroupNodeSearch.SearchTerm = "Default Inventory Group";
                        InventoryGroupNodeSearch.addFilter( InventoryGroupOC, false );

                        ICswNbtTree TreeOfArbitraryNodes = InventoryGroupNodeSearch.Results();
                        if( TreeOfArbitraryNodes.getRootTreeNode().ChildNodes.Count > 0 )
                        {

                            CswNbtTreeNode IGTreeNode = TreeOfArbitraryNodes.getRootTreeNode().ChildNodes[0];
                            CswNbtNode DefaultInventoryGroupNode = _CswNbtSchemaModTrnsctn.Nodes[IGTreeNode.NodeKey];
                            if( null != DefaultInventoryGroupNode )
                            {
                                //*** get tree of locations that don't have an inventory group
                                CswNbtView ViewOfLocationsWithNullIG = _CswNbtSchemaModTrnsctn.makeView();
                                //                            ViewOfLocationsWithNullIG.makeNew( "Null IVG Locations", NbtViewVisibility.Global, null, null );
                                ViewOfLocationsWithNullIG.ViewMode = CswEnumNbtViewRenderingMode.Tree;
                                ViewOfLocationsWithNullIG.Category = "System";
                                ViewOfLocationsWithNullIG.Width = 100;
                                CswNbtViewRelationship ViewRelLocationsOC = ViewOfLocationsWithNullIG.AddViewRelationship( LocationOC, true );


                                CswNbtViewProperty ViewPropIGOCP = ViewOfLocationsWithNullIG.AddViewProperty( ViewRelLocationsOC, InventoryGroupOCP );

                                ViewOfLocationsWithNullIG.AddViewPropertyFilter( ViewPropIGOCP, CswEnumNbtSubFieldName.NodeID, CswEnumNbtFilterMode.Null );

                                ICswNbtTree TreeOfLocations = _CswNbtSchemaModTrnsctn.getTreeFromView( ViewOfLocationsWithNullIG, true );


                                TreeOfLocations.goToRoot();
                                int TotalLocationNodes = TreeOfLocations.getChildNodeCount();
                                for( int idx = 0; idx < TotalLocationNodes; idx++ )
                                {
                                    TreeOfLocations.goToNthChild( idx );
                                    CswNbtObjClassLocation CurrentLocationNode = TreeOfLocations.getNodeForCurrentPosition();
                                    CurrentLocationNode.InventoryGroup.RelatedNodeId = DefaultInventoryGroupNode.NodeId;
                                    CurrentLocationNode.postChanges( true );
                                    TreeOfLocations.goToParentNode(); 

                                } // for( int idx = 0; idx < TotalTargetNodes; idx++ )


                            }//if there are any matching inventory group nodes




                            //foreach( CswNbtNode CurrentLocationNode in LocationOC.getNodes( false, true ) )
                            //{
                            //    if( null == CurrentLocationNode.Properties[InventoryGroupOCP.PropName].AsRelationship.RelatedNodeId )
                            //    {
                            //        CurrentLocationNode.Properties[InventoryGroupOCP.PropName].AsRelationship.RelatedNodeId = DefaultInventoryGroupNode.NodeId;
                            //        CurrentLocationNode.postChanges( true );

                            //    }//if the location doesn't have an inventory group

                            //}//iterate location nodes

                        }//if we found a default inventory group


                        _CswNbtSchemaModTrnsctn.MetaData.UpdateObjectClassProp( InventoryGroupOCP, CswEnumNbtObjectClassPropAttributes.isrequired, true );

                    }//if we found the inventory group OCP

                }//if we found the inventory group OC

            }//if we found the location OC

        } // update()
Пример #20
0
        public JObject restoreUniversalSearch(CswPrimaryKey SearchId, int Limit)
        {
            CswNbtSearch Search = _CswNbtResources.SearchManager.restoreSearch(SearchId);

            return(_finishUniversalSearch(Search, PageLimit: Limit));
        } // restoreUniversalSearch()