Exemple #1
0
        private void FillFilterExpression(RobotTypeFilterParams filterParams)
        {
            Expression <Func <RobotType, bool> > predicate = PredicateBuilder.New <RobotType>(true);

            if (!string.IsNullOrEmpty(filterParams.Term))
            {
                predicate = predicate.Extend(t => t.Name.Contains(filterParams.Term));
            }

            filterParams.Expression = predicate;
        }
Exemple #2
0
        public async Task <CollectionResult <RobotType> > GetTypesByFilterParamsAsync(RobotTypeFilterParams filterParams, CancellationToken ct = default)
        {
            IQueryable <RobotType> query = DbContext.RobotTypes.AsQueryable();

            FillFilterExpression(filterParams);

            query = query.Where(filterParams.Expression);

            int totalCount = query.Count();

            List <RobotType> items = await query
                                     .OrderBy(x => x.Name)
                                     .WithPagination(filterParams.Skip, filterParams.Take)
                                     .AsNoTracking()
                                     .ToListAsync(ct);

            CollectionResult <RobotType> result = new CollectionResult <RobotType>
            {
                Collection = items,
                TotalCount = totalCount
            };

            return(result);
        }