Ejemplo n.º 1
0
        public bool IncludeChildrenSection(int parentID, enumTypeHierarchy parentType, ICollection <FreeHierarchyTreeItem> children)
        {
            var isExistsSeeDbRights = false;

            foreach (var section in GlobalSectionsDictionary.SectionsList.Values.Where(s => s.TypeParentHierarchy == parentType && s.ParentId == parentID))
            {
                UserRightsForTreeObject right;
                if (!Manager.User.AccumulateRightsAndVerify(section, EnumObjectRightType.SeeDbObjects, HierObject.GetObjectRightType(), out right))
                {
                    continue;
                }

                isExistsSeeDbRights = true;


                var newItem = new FreeHierarchyTreeItem(Descriptor, section, false, string.Empty, Descriptor.GetMinIdAndDecrement(), this, true,
                                                        nodeRights: right, freeHierItemType: EnumFreeHierarchyItemType.Section);

                children.Add(newItem);
                Descriptor.Tree.TryAdd(newItem.FreeHierItem_ID, newItem);
                newItem.Descriptor.Tree = Descriptor.Tree;
                newItem.LoadStaticChildren(true);
            }

            return(isExistsSeeDbRights);
        }
Ejemplo n.º 2
0
        private static void ExpandParentAndSelectObjectXceedGrid(enumTypeHierarchy parentType, int parentId,
                                                                 IFreeHierarchyObject hierarchyObject, DataGridControl xamTree)
        {
            IFreeHierarchyObject parent = null;

            switch (parentType)
            {
            case enumTypeHierarchy.Dict_PS:
            case enumTypeHierarchy.USPD:
            case enumTypeHierarchy.E422:
                parent = EnumClientServiceDictionary.DetailPSList[parentId];
                break;

            case enumTypeHierarchy.Info_TP:
                var tps = EnumClientServiceDictionary.GetTps();
                if (tps != null)
                {
                    parent = tps[parentId];
                }
                break;
            }

            if (parent == null)
            {
                return;
            }

            var chain = new Stack();

#if DEBUG
            var sw = new System.Diagnostics.Stopwatch();
            sw.Start();
#endif
            var source = xamTree.ItemsSource as ICollection;
            if (source == null)
            {
                return;
            }

            FinderHelper.FindFirstElement(source, parent, chain);
#if DEBUG
            sw.Stop();
            Console.WriteLine("Поиск {0} млс", sw.ElapsedMilliseconds);
#endif
            if (chain.Count <= 0)
            {
                return;
            }

            var arr = new object[chain.Count];
            chain.CopyTo(arr, 0);
            //Array.Reverse(arr);

            chain = new Stack(arr);

            xamTree.ExpandandSelectXceedGrid(chain, hierarchyObject);
        }
Ejemplo n.º 3
0
        public static ArchTechRequesterBase GetRequester(ArchTechRequestParams requestParams
                                                         , enumTypeHierarchy typeHierarchy, IGrouping <enumTypeHierarchy, ArchTechRequestParam> requestParamByType)
        {
            switch (requestParamByType.Key)
            {
            //ТИ
            case enumTypeHierarchy.Info_TI:
                return(new ArchTechTiRequester(requestParams, requestParamByType));

            //Обычные формулы
            case enumTypeHierarchy.Formula:
            case enumTypeHierarchy.Formula_TP_OurSide:
                return(new ArchTechFormulaRequester(requestParams, requestParamByType));

            //ТП
            case enumTypeHierarchy.Info_TP:
                return(new ArchTechTpRequester(requestParams, requestParamByType));

            default:
                return(null);
            }
        }
Ejemplo n.º 4
0
        public bool IncludeChildrenFormulas(long parentID, enumTypeHierarchy parentType, ICollection <FreeHierarchyTreeItem> children)
        {
            if (EnumClientServiceDictionary.FormulasList == null)
            {
                return(false);
            }
            bool result = false;

            var isSelected = IsSelectedChildren;

            foreach (var f in EnumClientServiceDictionary.FormulasList.Where(i => i.Value.ParentId == parentID && i.Value.ParentType == parentType))
            {
                var newItem = new FreeHierarchyTreeItem(Descriptor, f.Value, isSelected, string.Empty, Descriptor.GetMinIdAndDecrement(), this, true,
                                                        freeHierItemType: EnumFreeHierarchyItemType.Formula, isChildrenInitializet: true);

                children.Add(newItem);
                Descriptor.Tree.TryAdd(newItem.FreeHierItem_ID, newItem);
                newItem.Descriptor.Tree = Descriptor.Tree;
                result = true;
            }

            return(result);
        }
Ejemplo n.º 5
0
 public Formula_ID_Hierarchy_Channel(enumTypeHierarchy typeHierarchy, string f_ID, byte channel)
 {
     TypeHierarchy = typeHierarchy;
     this.ID       = f_ID;
     this.Channel  = channel;
 }