示例#1
0
        public async Task <IActionResult> Create(QuizQuestionsVm vm, int trackIndex, string trackTitle)
        {
            if (ModelState.IsValid)
            {
                var question = vm.Question;
                var quiz     = await _context.Quizzes.FindAsync(vm.Quiz.Id);

                var service = new PlaybackService();
                var result  = service.GetSpotifyTracks(vm.Question.TrackTitle).Result;

                question.TrackId    = result.tracks.items[trackIndex].id;
                question.TrackTitle = result.tracks.items[trackIndex].name;

                question.QuizQuestions.Add(new QuizQuestion {
                    Quiz = quiz
                });

                _context.Add(question);

                await _context.SaveChangesAsync();

                return(RedirectToAction("Create", new { quizId = quiz.Id, quizName = quiz.Name }));
            }
            return(View());
        }
示例#2
0
        public async Task <IActionResult> Edit(int id, QuizQuestionsVm vm, int quizId)
        {
            if (id != vm.Question.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    var service = new PlaybackService();
                    var result  = service.GetSpotifyTracks(vm.Question.TrackTitle).Result;

                    vm.Question.TrackId    = result.tracks.items[0].id;
                    vm.Question.TrackTitle = result.tracks.items[0].name;

                    _context.Update(vm.Question);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!QuestionExists(vm.Question.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction("Edit", "Quiz", new { vm.Quiz.Id }));
            }
            return(View(vm.Question.Id));
        }
示例#3
0
        public async Task <IActionResult> Search(CreateQuizVM createquizvm, int quizId)
        {
            if (string.IsNullOrWhiteSpace(createquizvm.Question.TrackTitle))
            {
                return(RedirectToAction("Index", "Quiz"));
            }
            var service = new PlaybackService();
            var result  = await service.GetSpotifyTracks(createquizvm.Question.TrackTitle);

            QuizQuestionsVm vm = new QuizQuestionsVm
            {
                Suggestions = result.tracks.items.Select(x => x.id).ToList(),
                Quiz        = new Quiz
                {
                    Id = quizId
                },
                Question = new Question
                {
                    TrackTitle = createquizvm.Question.TrackTitle
                }
            };

            return(View("Index", vm));
        }