Beispiel #1
0
        public void FilterTest()
        {
            var expression = "$filter=Age eq 10";
            var docQuery   = new ODataQueryParser <Employee>();
            var query      = docQuery.TryParse(expression);

            Assert.NotNull(query.Filter.FilterExpression);
        }
Beispiel #2
0
        public async Task EnumConditionTest()
        {
            var expression = "$filter=MessagingAccountType ne 1";
            var runner     = new MongoDBQueryRunner <MessagingAccount>();
            var docQuery   = new ODataQueryParser <MessagingAccount>();
            var query      = docQuery.TryParse(expression);

            runner.Create(query);
            var collection = GetCollection <MessagingAccount>("messagingaccount");
            var list       = await runner.QueryAsync(collection);

            Assert.True(list.Count > 0);
        }
Beispiel #3
0
        public async Task ComplexFilterTest()
        {
            var expression = "$filter=(CompanyGroup eq 'Synechron' and IsDeleted eq false) or NumberOfEmployees ge 1";
            //var expression = "startswith(Name,'Syne') eq true";
            var runner   = new MongoDBQueryRunner <Company>();
            var docQuery = new ODataQueryParser <Company>();
            var query    = docQuery.TryParse(expression);

            runner.Create(query);
            var collection = GetCollection <Company>("company");
            var list       = await runner.QueryAsync(collection);

            Assert.True(list.Count > 0);
        }
Beispiel #4
0
        public async Task ContainsFilterTest()
        {
            var expression = "$filter=contains(Name,'Test')&$orderby=name desc";
            //var expression = "$filter=substringof('Test', Name)";
            //var expression = "startswith(Name,'Syne') eq true";
            var runner   = new MongoDBQueryRunner <MessagingAccount>();
            var docQuery = new ODataQueryParser <MessagingAccount>();
            var query    = docQuery.TryParse(expression);

            runner.Create(query);
            var collection = GetCollection <MessagingAccount>("messagingaccount");
            var list       = await runner.QueryAsync(collection);

            Assert.True(list.Count > 0);
        }
 /// <summary>
 /// Get list of entity of type TEntity.
 /// </summary>
 /// <param name="oDataFilterQuery">Filter query in odata format</param>
 /// <returns>The task object representing the asynchronous operation.
 /// It returns the list of Entity of type TEntity.</returns>
 public async Task <IList <TEntity> > FindAsync(string oDataFilterQuery = null)
 {
     if (string.IsNullOrEmpty(oDataFilterQuery) || queryRunner == default(IMongoDBQueryRunner <TEntity>))
     {
         return((await documentStorageContext.GetCollection(Collection).FindAsync(Builders <TEntity> .Filter.Empty))
                .ToList());
     }
     else
     {
         try
         {
             var queryParser = new ODataQueryParser <TEntity>();
             var query       = queryParser.TryParse(oDataFilterQuery);
             queryRunner.Create(query);
             return(await queryRunner.QueryAsync(documentStorageContext.GetCollection(Collection)));
         }
         catch (Exception ex)
         {
             throw new DocumentQueryException(ex.Message, ex);
         }
     }
 }
 public async Task <long> GetCountAsync(string oDataFilterQuery = null)
 {
     if (string.IsNullOrEmpty(oDataFilterQuery) || queryRunner == default(IMongoDBQueryRunner <TEntity>))
     {
         return(await documentStorageContext.GetCollection(Collection).CountAsync(Builders <TEntity> .Filter.Empty));
     }
     else
     {
         try
         {
             var queryRunner = new MongoDBQueryRunner <TEntity>();
             var docQuery    = new ODataQueryParser <TEntity>();
             var query       = docQuery.TryParse(oDataFilterQuery);
             queryRunner.Create(query);
             return(await documentStorageContext.GetCollection(Collection).CountAsync(queryRunner.FilterDefinition));
         }
         catch (Exception ex)
         {
             throw new DocumentQueryException(ex.Message, ex);
         }
     }
 }