public async Task <IPagedList <PublicTestNavigation> > GetPaginatedPublicTestNavigation( GetPaginatedPublicTestNavigationQuery query) { var tests = await GetTestIncludeQueryable() .Include(t => t.Step) .ThenInclude(s => s.ProgrammingLanguage) .Where(ToExpression(query)) .FromPaginationQueryAsync(query); return(PagedList <PublicTestNavigation> .From(tests.Select(ToPublicTestNavigation).ToList(), tests)); }
private static Expression <Func <Test, bool> > ToExpression(GetPaginatedPublicTestNavigationQuery query) { return(test => !test.IsDeleted && (query.StepId == null || query.StepId == test.Step.Id)); }