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); }
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); }
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); }
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); } } }