コード例 #1
0
        // GET: Quiz/Edit/5
        public async Task <IActionResult> Edit(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var quiz = await _context.Quizzes.FindAsync(id);

            if (quiz == null)
            {
                return(NotFound());
            }

            var questions = _context.Quizzes
                            .Include(q => q.QuizQuestions)
                            .ThenInclude(q => q.Question)
                            .Single(m => m.Id == id)
                            .QuizQuestions.Select(x => x.Question);

            var vm = new QuizQuestionsVm
            {
                Quiz      = quiz,
                Questions = questions.ToList()
            };

            return(View(vm));
        }
コード例 #2
0
        // GET: Questions/Edit/5
        public async Task <IActionResult> Edit(int?id, int quizId)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var question = await _context.Question.FindAsync(id);

            if (question == null)
            {
                return(NotFound());
            }

            var vm = new QuizQuestionsVm
            {
                Question = question
            };

            var quiz = await _context.Quizzes.FindAsync(quizId);

            vm.Quiz = quiz;

            return(View(vm));
        }
コード例 #3
0
        // GET: Quiz/Details/5
        public IActionResult Details(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var quiz = _context.Quizzes
                       .FirstOrDefault(q => q.Id == id);

            if (quiz == null)
            {
                return(NotFound());
            }

            var questions = _context.Quizzes
                            .Include(q => q.QuizQuestions)
                            .ThenInclude(q => q.Question)
                            .Single(m => m.Id == id)
                            .QuizQuestions.Select(x => x.Question);

            if (questions == null)
            {
                return(NotFound());
            }

            var vm = new QuizQuestionsVm
            {
                Quiz      = quiz,
                Questions = questions.ToList()
            };

            return(View(vm));
        }
コード例 #4
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());
        }
コード例 #5
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));
        }
コード例 #6
0
        // GET: Quiz
        public async Task <IActionResult> Index()
        {
            QuizQuestionsVm vm = new QuizQuestionsVm
            {
                Quizzez = await _context.Quizzes.ToListAsync()
            };

            return(View("Index", vm));
        }
コード例 #7
0
        // GET: Questions/Create
        public IActionResult Create(int quizId, string quizName, int trackIndex, string trackTitle)
        {
            QuizQuestionsVm vm = new QuizQuestionsVm
            {
                Quiz = new Quiz
                {
                    Id   = quizId,
                    Name = quizName
                },
                TrackIndex = trackIndex,
                Question   = new Question
                {
                    TrackTitle = trackTitle
                }
            };

            return(View(vm));
        }
コード例 #8
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));
        }
コード例 #9
0
 public IActionResult Index(QuizQuestionsVm vm)
 {
     return(View(vm));
 }