コード例 #1
0
        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);
        }