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()); }
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)); }
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)); }