Пример #1
0
        private void RefreshSessionObjects()
        {
            var actualObjects = FavouritesCollectionUI.FindRootObjects(Activator, Collection.DatabaseObjects.Contains)
                                .Union(Collection.DatabaseObjects.OfType <Pipeline>()).ToList();

            //no change in root favouratism
            if (actualObjects.SequenceEqual(olvTree.Objects.OfType <IMapsDirectlyToDatabaseTable>()))
            {
                return;
            }

            //remove old objects
            foreach (var old in Collection.DatabaseObjects.Except(actualObjects))
            {
                olvTree.RemoveObject(old);
            }

            //add new objects
            foreach (var newObject in actualObjects.Except(olvTree.Objects.OfType <IMapsDirectlyToDatabaseTable>()))
            {
                olvTree.AddObject(newObject);
            }

            //update to the new list
            Collection.DatabaseObjects = actualObjects;
            olvTree.RebuildAll(true);
        }