public async Task <AkinatorQuestion> Answer(AnswerOptions answer, CancellationToken cancellationToken = default) { cancellationToken.ThrowIfCancellationRequested(); var url = AkiUrlBuilder.Answer(BuildAnswerRequest(answer), _mServer); var response = await _mWebClient.GetAsync(url, cancellationToken).ConfigureAwait(false); var content = await response.Content.ReadAsStringAsync().ConfigureAwait(false); var result = EnsureNoError <Question>(url, content); _mStep = result.Step; CurrentQuestion = ToAkinatorQuestion(result); return(CurrentQuestion); }
public async Task <AkinatorQuestion> Answer(AnswerOptions answer, CancellationToken cancellationToken) { cancellationToken.ThrowIfCancellationRequested(); var url = AkiUrlBuilder.Answer(BuildAnswerRequest(answer), m_usedLanguage, m_usedServerType); var response = await m_webClient.GetAsync(url, cancellationToken).ConfigureAwait(false); var content = await response.Content.ReadAsStringAsync(); var result = JsonConvert.DeserializeObject <BaseResponse <Question> >(content, new JsonSerializerSettings() { MissingMemberHandling = MissingMemberHandling.Ignore }); m_step = result.Parameters.Step; return(ToAkinatorQuestion(result.Parameters)); }