public async Task <GetRandomQuizQuestionResponse> Handle(GetRandomQuizQuestionRequest request, CancellationToken cancellationToken) { OpenTdbRequest openTdbRequest = new OpenTdbRequest { NumberOfQuestionsToGenerate = 1 }; var openTdbResponse = await _openTdbClient.GetQuestions(openTdbRequest); var response = FormRandomQuizQuestionResponseFromOpenTdbResponse(openTdbResponse); return(response); }
private void AssembleQueryString(OpenTdbRequest request) { if (request.Category != Categories.AnyCategory) { _queryString += "&category=" + (int)request.Category; } if (request.Difficulty != Difficulties.Any) { _queryString += "&difficulty=" + request.Difficulty.ToString(); } if (request.Type != QuestionTypes.Any) { _queryString += "&type=" + request.Type.ToString(); } }
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); }