Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        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));
        }