private static List <MdxHierarchy> GetHierarhies(IMdxElement rows) { var allHierarchies = LinqExtendedDescendans.DescendansAllLayerBFS( rows, element => element is MdxHierarchy, element => element.GetChildren()) .Cast <MdxHierarchy>() .ToList(); return(allHierarchies); }
//TODO: сделать internal public IEnumerable <MdxHierarchy> FindHierarchies() { var allHierarchies = LinqExtendedDescendans.DescendansAllLayerDFS( this as IMdxElement, element => element is MdxHierarchy, element => element.GetChildren()) .Cast <MdxHierarchy>() .Reverse(); return(allHierarchies); }
//TODO: сделать internal private static Dictionary <string, List <IMdxElement> > GetWhereValues(IMdxElement whereMdx) { var allValues = LinqExtendedDescendans.DescendansAllLayerBFS( whereMdx, element => element.GetType() == typeof(MdxValueElement), element => element.GetChildren()); var valuesByNames = allValues .GroupBy(el => ((MdxValueElement)el).Name) .ToDictionary(elements => elements.Key, elements => elements.ToList()); return(valuesByNames); }