internal static Hashtable GetOrCreateNamesHashtable(DataTable table, int internallyAddedPropCount)
        {
            if (table.ExtendedProperties["MemberPropertiesNamesHash"] is Hashtable)
            {
                return(table.ExtendedProperties["MemberPropertiesNamesHash"] as Hashtable);
            }
            Hashtable hashtable = MemberPropertyCollection.GetNamesHash(table, 5 + internallyAddedPropCount);

            table.ExtendedProperties["MemberPropertiesNamesHash"] = hashtable;
            return(hashtable);
        }
        internal Member(AdomdConnection connection, DataRow memberRow, Level parentLevel, Member parentMember, MemberOrigin memberOrigin, string cubeName, Tuple parentTuple, int memberOrdinal, string catalog, string sessionId)
        {
            bool flag = memberOrigin == MemberOrigin.Metadata;

            this.baseData         = new BaseObjectData(connection, flag, flag ? null : memberRow, flag ? memberRow : null, parentLevel, cubeName, catalog, sessionId);
            this.parentLevel      = parentLevel;
            this.parent           = parentMember;
            this.memberProperties = null;
            this.parentTuple      = parentTuple;
            this.memberOrdinal    = memberOrdinal;
            this.memberOrigin     = memberOrigin;
        }
 internal MemberPropertyCollection(DataRow memberAxisRow, Member parentMember, int internallyAddedDimensionPropertyCount)
 {
     if (parentMember == null)
     {
         throw new ArgumentNullException("parentMember");
     }
     if (memberAxisRow == null)
     {
         this.indexMap = new Collection <int>();
     }
     else
     {
         this.indexMap = (memberAxisRow.Table.ExtendedProperties["MemberProperties"] as Collection <int>);
     }
     this.memberAxisRow             = memberAxisRow;
     this.parentMember              = parentMember;
     this.firstMemberPropertyOffset = 5 + internallyAddedDimensionPropertyCount;
     if (this.memberAxisRow == null)
     {
         this.namesHash = new Hashtable();
         return;
     }
     this.namesHash = MemberPropertyCollection.GetOrCreateNamesHashtable(this.memberAxisRow.Table, internallyAddedDimensionPropertyCount);
 }
 internal Enumerator(MemberPropertyCollection memberProperties)
 {
     this.memberProperties = memberProperties;
     this.currentIndex     = -1;
 }