Example #1
0
        /// <summary>
        /// Получаем коллекцию объектов для вставки/обновления ветки
        /// </summary>
        /// <param name="destTreeId">Идентификатор дерева, куда вставляем</param>
        /// <param name="destFreeHierItemId">Идентификатор узла, на который добавляем</param>
        /// <param name="sourceTree">Дерево, от куда добавляем</param>
        /// <param name="includeChildren"></param>
        /// <returns></returns>
        public static List <FreeHierTreeItem> FindSelectedAndBuildForInsert(int destTreeId, int destFreeHierItemId, FreeHierarchyTree sourceTree, bool includeChildren)
        {
            var descriptor = sourceTree.GetDescriptor();

            if (descriptor == null)
            {
                return(null);
            }

            var selectedParent = new List <FreeHierarchyTreeItem>();

            descriptor.GetSelected(selectedParent, aditionalWherePredicate: i =>
            {
                //Выбранные, но без родителя, или родитель не выбран, т.е. эти объекты будут непосредственно на самом узле, куда их всех необходимо добавить,
                //дочерние выбранные пойдут под ними, их не выбираем
                return(i.Parent == null || !i.Parent.IsSelected);
            });

            var nodes = new List <FreeHierTreeItem>();

            foreach (var parent in selectedParent)
            {
                BuildParent(destTreeId, destFreeHierItemId, parent, nodes, includeChildren, "");
            }

            return(nodes);
        }
Example #2
0
        private void SelectUnselectV2(ICollection <FreeHierarchyTreeItem> items)
        {
            if (ObjectsFromSQL == null || ObjectsFromSQL.Count == 0)
            {
                return;
            }

            var descriptor = _tree.GetDescriptor();

            if (descriptor == null)
            {
                return;
            }

            descriptor.SelectFromSets(items, ObjectsFromSQL, true);
        }