Exemple #1
0
        public async Task <OpenTdbResponse> GetQuestions(OpenTdbRequest request)
        {
            var response = new OpenTdbResponse();

            _queryString = "?amount=" + request.NumberOfQuestionsToGenerate;

            AssembleQueryString(request);

            try
            {
                var httpResponse = await _client.GetAsync(_queryString);

                if (httpResponse.IsSuccessStatusCode)
                {
                    response.ReasonPhrase = httpResponse.ReasonPhrase;
                    response.StatusCode   = httpResponse.StatusCode;

                    var responseContent = await httpResponse.Content.ReadAsStringAsync();

                    var quizQuestionsAsJsonObject = PrepareTextForJsonObjectification(responseContent);
                    response.QuizQuestions = MapJsonToQuizQuestions(quizQuestionsAsJsonObject);
                }
            }
            catch (Exception ex)
            {
                _logger.LogError("Exception: " + ex.ToString());

                response.QuizQuestions.Add(
                    new QuizQuestionDto
                {
                    Question = "Could not find a question... Please refresh to try again."
                });
            }

            return(response);
        }
Exemple #2
0
        private GetRandomQuizQuestionResponse FormRandomQuizQuestionResponseFromOpenTdbResponse(OpenTdbResponse openTdbResponse)
        {
            var randomQuestionResponse = new GetRandomQuizQuestionResponse();

            if (openTdbResponse.StatusCode == HttpStatusCode.OK)
            {
                randomQuestionResponse.QuizQuestion = openTdbResponse.QuizQuestions[0];
            }

            return(randomQuestionResponse);
        }