Beispiel #1
0
 public static IEnumerable <BsonValue> ToEnumerable(this IBsonDataReader reader)
 {
     while (reader.Read())
     {
         yield return(reader.Current);
     }
 }
Beispiel #2
0
        public DataTable Convert(IBsonDataReader reader)
        {
            DataRow dataRow      = null;
            bool    isArrayField = false;

            _dataTable = new DataTable();

            // Populate datatable
            while (reader.Read())
            {
                if (_dataTable.Columns.Count == 0)
                {
                    // Add columns to table
                    foreach (var keyValuePair in (BsonDocument)reader.Current)
                    {
                        if (keyValuePair.Value.Type == BsonType.Array)
                        {
                            _dataTable.Columns.Add(new DataColumn(keyValuePair.Key, typeof(String)));
                        }
                        else
                        {
                            _dataTable.Columns.Add(new DataColumn(keyValuePair.Key, keyValuePair.Value.Type.ToSystemType()));
                        }
                    }
                }

                dataRow = _dataTable.NewRow();

                // Populate new row with data
                foreach (var keyValuePair in (BsonDocument)reader.Current)
                {
                    if (keyValuePair.Value.Type == BsonType.Array)
                    {
                        ProcessArrayField(keyValuePair.Key, keyValuePair.Value);
                        isArrayField = true;
                    }
                    else
                    {
                        dataRow[keyValuePair.Key] = keyValuePair.Value.RawValue;
                    }
                }

                // Add row to table
                if (isArrayField == false)
                {
                    _dataTable.Rows.Add(dataRow);
                    _dataTable.AcceptChanges();
                }
            }

            return(_dataTable);
        }
 public static IEnumerable <BsonValue> ToEnumerable(this IBsonDataReader reader)
 {
     try
     {
         while (reader.Read())
         {
             yield return(reader.Current);
         }
     }
     finally
     {
         reader.Dispose();
     }
 }
Beispiel #4
0
        public void ReadResult(IBsonDataReader reader)
        {
            this.Result        = new List <BsonValue>();
            this.LimitExceeded = false;
            this.Collection    = reader.Collection;

            var index = 0;

            while (reader.Read())
            {
                if (index++ >= ResultLimit && ResultLimit > 0)
                {
                    this.LimitExceeded = true;
                    break;
                }

                this.Result.Add(reader.Current);
            }
        }
Beispiel #5
0
        public void ReadResult(IBsonDataReader reader)
        {
            Result        = new List <BsonValue>();
            LimitExceeded = false;
            Collection    = reader.Collection;

            var index = 0;

            while (reader.Read())
            {
                if (index++ >= RESULT_LIMIT)
                {
                    LimitExceeded = true;
                    break;
                }

                Result.Add(reader.Current);
            }
        }
Beispiel #6
0
        public static IEnumerable <BsonValue> ToEnumerable(this IBsonDataReader reader)
        {
            IEnumerable <BsonValue> _()
            {
                while (reader.Read())
                {
                    yield return(reader.Current);
                }

                reader.Dispose();
            };

            try
            {
                return(_());
            }
            catch
            {
                reader.Dispose();
                throw;
            }
        }
Beispiel #7
0
 public bool Read() => _reader.Read();