private void PopulateCollection(MiningModel parentModel)
        {
            this.hashAttrIDs = new Hashtable();
            AdomdCommand adomdCommand = new AdomdCommand();

            adomdCommand.Connection = parentModel.ParentConnection;
            int num = 0;

            MiningModelColumnCollection.Enumerator enumerator = parentModel.Columns.GetEnumerator();
            while (enumerator.MoveNext())
            {
                MiningModelColumn current = enumerator.Current;
                if (current.IsTable)
                {
                    MiningModelColumnCollection.Enumerator enumerator2 = current.Columns.GetEnumerator();
                    while (enumerator2.MoveNext())
                    {
                        MiningModelColumn arg_54_0 = enumerator2.Current;
                        num++;
                    }
                }
            }
            adomdCommand.CommandText = string.Format(CultureInfo.InvariantCulture, MiningAttributeCollection.attribQueryStmt, new object[]
            {
                parentModel.Name
            });
            AdomdDataReader adomdDataReader = adomdCommand.ExecuteReader(CommandBehavior.SequentialAccess);

            while (adomdDataReader.Read())
            {
                int             @int            = adomdDataReader.GetInt32(MiningAttributeCollection.attIdIndex);
                string          @string         = adomdDataReader.GetString(MiningAttributeCollection.nameIndex);
                string          string2         = adomdDataReader.GetString(MiningAttributeCollection.shortNameIndex);
                bool            boolean         = adomdDataReader.GetBoolean(MiningAttributeCollection.isInputIndex);
                bool            boolean2        = adomdDataReader.GetBoolean(MiningAttributeCollection.isPredictableIndex);
                int             int2            = adomdDataReader.GetInt32(MiningAttributeCollection.featureSelectionIndex);
                string          string3         = adomdDataReader.GetString(MiningAttributeCollection.keyColumnIndex);
                string          string4         = adomdDataReader.GetString(MiningAttributeCollection.valueColumnIndex);
                MiningAttribute miningAttribute = new MiningAttribute(parentModel);
                miningAttribute.attributeID      = @int;
                miningAttribute.name             = @string;
                miningAttribute.shortName        = string2;
                miningAttribute.isInput          = boolean;
                miningAttribute.isPredictable    = boolean2;
                miningAttribute.featureSelection = (MiningFeatureSelection)int2;
                miningAttribute.keyColumn        = this.ModelColumnFromName(string3, parentModel);
                miningAttribute.valueColumn      = this.ModelColumnFromName(string4, parentModel);
                this.hashAttrIDs.Add(miningAttribute.name, miningAttribute.attributeID);
                this.arAttributesInternal.Add(miningAttribute);
            }
            adomdDataReader.Close();
            adomdCommand.Dispose();
        }
 public void Close()
 {
     if (_type == AdomdType.AnalysisServices)
     {
         _reader.Close();
     }
     else
     {
         ExcelAdoMdConnections.VoidDelegate f = delegate
         {
             _readerExcel.Close();
         };
         f();
     }
 }
        internal MiningValueCollectionInternal(MiningModelColumn column)
        {
            this.internalObjectCollection = new ArrayList();
            if (column.IsTable)
            {
                return;
            }
            AdomdCommand adomdCommand = new AdomdCommand();

            adomdCommand.CommandText = string.Format(CultureInfo.InvariantCulture, "SELECT DISTINCT {0} FROM [{1}]", new object[]
            {
                column.FullyQualifiedName,
                column.ParentMiningModel.Name
            });
            adomdCommand.Connection = column.ParentMiningModel.ParentConnection;
            AdomdDataReader adomdDataReader = adomdCommand.ExecuteReader();
            int             num             = -1;

            while (adomdDataReader.Read())
            {
                num++;
                object          objValue  = adomdDataReader[0];
                string          content   = column.Content;
                MiningValueType valueType = MiningValueType.Missing;
                if (num == 0 && content.IndexOf("key", StringComparison.OrdinalIgnoreCase) < 0)
                {
                    valueType = MiningValueType.Missing;
                }
                else if (string.Compare(content, "discrete", StringComparison.OrdinalIgnoreCase) == 0 || string.Compare(content, "key", StringComparison.OrdinalIgnoreCase) == 0)
                {
                    valueType = MiningValueType.Discrete;
                }
                else if (content.IndexOf("discretized", StringComparison.OrdinalIgnoreCase) == 0)
                {
                    valueType = MiningValueType.Discretized;
                }
                else if (string.Compare(content, "continuous", StringComparison.OrdinalIgnoreCase) == 0)
                {
                    valueType = MiningValueType.Continuous;
                }
                MiningValue newValue = new MiningValue(valueType, num, objValue);
                this.Add(newValue);
            }
            adomdDataReader.Close();
            adomdDataReader.Dispose();
            adomdCommand.Dispose();
        }