public ListResponse List(int pageSize, int pageNumber, string query = "", bool showAll = false) { if (pageSize <= 0) { throw new ArgumentOutOfRangeException(nameof(pageSize)); } if (pageNumber < 0) { throw new ArgumentOutOfRangeException(nameof(pageNumber)); } Func <TestResult, bool> queryFunc = query switch { null or "" => (TestResult result) => { if (showAll) { return(true); } else { var configuration = PTMKernelService.GetConfiguration(result.TestSuiteConfigurationId); var testSuite = PTMKernelService.GetTestSuite(configuration.TestSuite.Id); return(true && !testSuite.Removed); } }, _ => (TestResult result) => { var containingQuery = false; var configuration = PTMKernelService.GetConfiguration(result.TestSuiteConfigurationId); if (configuration.Name.ToLower().Contains(query.ToLower())) { containingQuery = true; } var testSuite = PTMKernelService.GetTestSuite(configuration.TestSuite.Id); if (testSuite.Name.ToLower().Contains(query.ToLower())) { containingQuery = true; } if (showAll) { return(containingQuery); } else { return(containingQuery && !testSuite.Removed); } } }; var items = PTMKernelService.QueryTestRuns(pageSize, pageNumber, queryFunc, out int totalPage).Select(testRun => new TestResultOverview { Id = testRun.Id, ConfigurationId = testRun.Configuration.Id, Status = testRun.State, Total = testRun.Total, NotRun = testRun.NotRun, Running = 0, Passed = testRun.Passed, Failed = testRun.Failed, Inconclusive = testRun.Inconclusive, }).ToArray(); var result = new ListResponse { PageCount = totalPage, TestResults = items, }; return(result); }