Ejemplo n.º 1
0
        private void FillFilterExpression(RobotCompanyFilterParams filterParams)
        {
            Expression <Func <RobotCompany, bool> > predicate = PredicateBuilder.New <RobotCompany>(true);

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

            filterParams.Expression = predicate;
        }
Ejemplo n.º 2
0
        public async Task <CollectionResult <RobotCompany> > GetCompaniesByFilterParamsAsync(RobotCompanyFilterParams filterParams, CancellationToken ct = default)
        {
            IQueryable <RobotCompany> query = DbContext.RobotCompanies.AsQueryable();

            FillFilterExpression(filterParams);

            query = query.Where(filterParams.Expression);

            int totalCount = query.Count();

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

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

            return(result);
        }