Beispiel #1
0
        public async Task <IActionResult> GetQuests(string searchPattern, int start, int pageSize)
        {
            GoNorthProject project = await _projectDbAccess.GetDefaultProject();

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

            if (string.IsNullOrEmpty(searchPattern))
            {
                queryTask = _questDbAccess.GetQuestsByProjectId(project.Id, start, pageSize);
                countTask = _questDbAccess.GetQuestsByProjectIdCount(project.Id);
            }
            else
            {
                queryTask = _questDbAccess.SearchQuests(project.Id, searchPattern, start, pageSize);
                countTask = _questDbAccess.SearchQuestsCount(project.Id, searchPattern);
            }
            Task.WaitAll(queryTask, countTask);

            QuestQueryResult queryResult = new QuestQueryResult();

            queryResult.Quests  = queryTask.Result;
            queryResult.HasMore = start + queryResult.Quests.Count < countTask.Result;
            return(Ok(queryResult));
        }
Beispiel #2
0
        public async Task <IActionResult> GetNotImplementedQuests(int start, int pageSize)
        {
            GoNorthProject project = await _projectDbAccess.GetDefaultProject();

            Task <List <AikaQuest> > queryTask = _questDbAccess.GetNotImplementedQuests(project.Id, start, pageSize);
            Task <int> countTask = _questDbAccess.GetNotImplementedQuestsCount(project.Id);

            Task.WaitAll(queryTask, countTask);

            QuestQueryResult queryResult = new QuestQueryResult();

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