Пример #1
0
        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));
        }
Пример #2
0
        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));
        }