public async Task <IActionResult> QuestionsAsync(TriviaParametersViewModel triviaParameters) { int categoryId = triviaParameters.CategoryId; string difficulty = triviaParameters.Difficulty; string questionType = triviaParameters.QuestionType; int amount = triviaParameters.NumberOfQuestions; var settings = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore, MissingMemberHandling = MissingMemberHandling.Ignore }; string sessionToken = HttpContext.Session.GetString("ApiSessionToken"); if (sessionToken == null) { string tokenRequestUrl = @"https://opentdb.com/api_token.php?command=request"; var jsonResponse = await ApiHub.GetJson(tokenRequestUrl); var resultJToken = JsonConvert.DeserializeObject <JToken>(jsonResponse); var apiSessionToken = resultJToken["token"].ToString(); HttpContext.Session.SetString("ApiSessionToken", apiSessionToken); sessionToken = apiSessionToken; } string url = $@"https://opentdb.com/api.php?amount={amount}&category={categoryId}&difficulty={difficulty}&type={questionType}&token={sessionToken}"; var json = await ApiHub.GetJson(url); var result = JsonConvert.DeserializeObject <Questions>(json); TriviaQuestionsViewModel triviaQuestionsViewModel = new TriviaQuestionsViewModel(); triviaQuestionsViewModel.Questions = result; return(View("questions", triviaQuestionsViewModel)); }
public IActionResult Parameters() { TriviaParametersViewModel triviaParametersViewModel = new TriviaParametersViewModel(); triviaParametersViewModel.Categories = _categoryRepository.FindAll().ToList().Select(c => new SelectListItem { Value = c.TriviaDbCategoryId.ToString(), Text = c.Name }); triviaParametersViewModel.Difficulies = _difficultyRepository.FindAll().ToList().Select(c => new SelectListItem { Value = c.Name.ToLower(), Text = c.Name }); triviaParametersViewModel.TypeList = _questionTypeRepository.FindAll().ToList().Select(c => new SelectListItem { Value = c.Name == "Multiple Choice"? "multiple" : "boolean", Text = c.Name }); return(View(triviaParametersViewModel)); }