コード例 #1
0
        public async Task <IActionResult> GetChapterDetails(string searchPattern, int start, int pageSize)
        {
            GoNorthProject project = await _projectDbAccess.GetDefaultProject();

            Task <List <AikaChapterDetail> > queryTask;
            Task <int> countTask;

            if (string.IsNullOrEmpty(searchPattern))
            {
                queryTask = _chapterDetailDbAccess.GetChapterDetailsByProjectId(project.Id, start, pageSize);
                countTask = _chapterDetailDbAccess.GetChapterDetailsByProjectIdCount(project.Id);
            }
            else
            {
                queryTask = _chapterDetailDbAccess.SearchChapterDetails(project.Id, searchPattern, start, pageSize);
                countTask = _chapterDetailDbAccess.SearchChapterDetailsCount(project.Id, searchPattern);
            }
            Task.WaitAll(queryTask, countTask);

            ChapterDetailQueryResult queryResult = new ChapterDetailQueryResult();

            queryResult.Details = queryTask.Result;
            queryResult.HasMore = start + queryResult.Details.Count < countTask.Result;
            return(Ok(queryResult));
        }