AppBoxr.MongoDataLayer.Get C# (CSharp) Method

Get() public method

public Get ( dynamic queries ) : IEnumerable
queries dynamic
return IEnumerable
        public IEnumerable<dynamic> Get(dynamic queries)
        {
            List<dynamic> _docs = new List<dynamic>();
            foreach (var q in queries)
            {
                string _coll = q.collection.ToString();
                string _query = "";
                string _orderby = "";

                List<string> _fields = new List<string>();
                if (q.fields != null)
                    foreach (var f in q.fields)
                        if (!String.IsNullOrEmpty(f))
                            _fields.Add(f.ToString());

                if (q.query != null)
                    _query = q.query.ToString();

                if (q.orderby != null)
                    _orderby = q.orderby.ToString();

                var col = _db.GetCollection(_coll);
                var _results = col.GetItems<BsonDocument>(_fields, _query, _orderby);

                var cid = (q.contextid != null) ? q.contextid : "";

                //ensures that the objectid is not part of the json string
                var _settings = new JsonWriterSettings { OutputMode = JsonOutputMode.Strict };
                var _res = new { contextid = cid, results = JsonConvert.DeserializeObject<dynamic>(_results.ToJson(_settings)) };
                dynamic doc = JsonConvert.DeserializeObject<dynamic>(JsonConvert.SerializeObject(_res));

                _docs.Add(doc);
            }

            return _docs;
        }