public AxisCell GetOrAddCell4Tuple(Tuple Tuple) { AxisCell result = null; if (!AllCellsByTuple.TryGetValue(Tuple, out result)) { if (Tuple.Member.ParentMember != null) result = GetOrAddCell4Tuple(new Tuple(Tuple.ParentTuple, Tuple.Member.ParentMember)); else if (Tuple.ParentTuple != null) result = GetOrAddCell4Tuple(Tuple.ParentTuple); result = new AxisCell(result, Tuple); AllCellsByTuple[Tuple]=result; // FirstHierarchyMembers } return result; }
public Tuple(Tuple ParentTuple, HierarchyMember Member) { this.ParentTuple = ParentTuple; if (ParentTuple!=null) this.hashCode=ParentTuple.GetHashCode(); this.Member = Member; this.hashCode^=Member.GetHashCode(); }
internal AxisCell(AxisCell ParentAxisCell, Tuple Tuple) { this.Tuple = Tuple; this.ParentAxisCell = ParentAxisCell; if (ParentAxisCell!=null) { if (object.ReferenceEquals(ParentAxisCell.Tuple.Member.Hierarchy,Tuple.Member.Hierarchy)) ParentAxisCell.ChildsInMyHierarchy.Add(this); else ParentAxisCell.ChildsInNextHierarchy.Add(this); } }
public MdxTupleExpression(Tuple Tuple) :this(Tuple.GenerateMembers(new List<MdxExpression>())) {}