Esempio n. 1
0
        //Preparado para utilizar todas as condições ("keysAndValues") com LessThan, GreaterThan e Matches. Por enquanto utilizando somente chamada com Equals.
        public List <IMongoQuery> GetQueries(IDictionary <string, string> keysAndValues, MongoDBQueryCondition eQuery)
        {
            var queries = new List <IMongoQuery>();

            foreach (var key in keysAndValues.Keys)
            {
                switch (eQuery)
                {
                case MongoDBQueryCondition.eQueryEQ:
                    queries.Add(Query.EQ(key, keysAndValues[key]));
                    break;

                case MongoDBQueryCondition.eQueryLT:
                    queries.Add(Query.LT(key, keysAndValues[key]));
                    break;

                case MongoDBQueryCondition.eQueryGT:
                    queries.Add(Query.GT(key, keysAndValues[key]));
                    break;

                case MongoDBQueryCondition.eQueryMatches:
                    queries.Add(Query.Matches(key, new BsonRegularExpression(keysAndValues[key], "i")));
                    break;

                default: continue;
                }
            }
            return(queries);
        }
Esempio n. 2
0
        protected virtual IEnumerable <T> InternalSearch <Tkey>(IList <IMongoQuery> search, int page, int pagesize, out long foundedRecords, Func <T, Tkey> orderByClause, bool orderByDescending, MongoDBQueryCondition queryCondition)
        {
            var query     = queryCondition.Equals(MongoDBQueryCondition.eQueryOr) ? Query.Or(search) : Query.And(search);
            var totallist = MongoDBColletion.Find(query).AsQueryable();

            foundedRecords = totallist.ToList().Count();
            return(OrderByQuery <Tkey>(pagesize, page, orderByClause, orderByDescending, totallist));
        }