public async Task <ResultSet <RtEntity> > GetRtEntitiesByIdAsync(IOspSession session, string ckId, IReadOnlyList <ObjectId> rtIds, DataQueryOperation dataQueryOperation, int?skip = null, int?take = null) { ArgumentValidation.ValidateString(nameof(ckId), ckId); ArgumentValidation.Validate(nameof(rtIds), rtIds); ArgumentValidation.Validate(nameof(dataQueryOperation), dataQueryOperation); if (!rtIds.Any()) { return(new ResultSet <RtEntity>(new List <RtEntity>(), 0)); } var resultSet = new List <RtEntity>(); long totalCount = 0; var entityCacheItem = GetEntityCacheItem(ckId); var statementCreator = new RtStatementCreator(entityCacheItem, _databaseContext, dataQueryOperation.Language); statementCreator.AddFieldFilters(dataQueryOperation.FieldFilters); statementCreator.AddIdFilter(rtIds); statementCreator.AddTextSearchFilter(dataQueryOperation.TextSearchFilter); statementCreator.AddAttributeSearchFilter(dataQueryOperation.AttributeSearchFilter); statementCreator.AddSort(dataQueryOperation.SortOrders); var tempResultSet = await statementCreator.ExecuteQuery(session, skip, take); resultSet.AddRange(tempResultSet.Result); totalCount += tempResultSet.TotalCount; return(new ResultSet <RtEntity>(resultSet, totalCount)); }
private async Task <ResultSet <TEntity> > GetRtEntitiesByTypeAsync <TEntity>(IOspSession session, string ckId, DataQueryOperation dataQueryOperation, int?skip = null, int?take = null) where TEntity : RtEntity, new() { ArgumentValidation.Validate(nameof(dataQueryOperation), dataQueryOperation); var entityCacheItem = GetEntityCacheItem(ckId); var statementCreator = new RtStatementCreator <TEntity>(entityCacheItem, _databaseContext, dataQueryOperation.Language); statementCreator.AddFieldFilters(dataQueryOperation.FieldFilters); statementCreator.AddTextSearchFilter(dataQueryOperation.TextSearchFilter); statementCreator.AddAttributeSearchFilter(dataQueryOperation.AttributeSearchFilter); statementCreator.AddSort(dataQueryOperation.SortOrders); return(await statementCreator.ExecuteQuery(session, skip, take)); }