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); }
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); }
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); } }
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); }
public Formula_ID_Hierarchy_Channel(enumTypeHierarchy typeHierarchy, string f_ID, byte channel) { TypeHierarchy = typeHierarchy; this.ID = f_ID; this.Channel = channel; }