Beispiel #1
0
        public static async Task <QuizMasterVM> StartQuiz(string _id)
        {
            await MongoManager.ClearOldAnswers(_id);

            int pin;
            // Hämta quiz från quizzes
            RunningQuiz runningQuiz;

            runningQuiz = JsonConvert.DeserializeObject <RunningQuiz>(await MongoManager.GetOneQuizAsync(_id, "Quizzes"));

            do
            {
                pin = randomizer.Next(1000, 9999);
            }while (await MongoManager.CheckIfPinExistsAsync(pin.ToString(), "runningQuizzes"));


            runningQuiz.Pin = pin.ToString();
            // Stoppa ner quizzet med PIN i runningQuizzes

            if (await MongoManager.CheckIfDocumentExistsAsync(runningQuiz._id, "runningQuizzes"))
            {
                await MongoManager.ReplaceOneQuizAsync(runningQuiz._id, JsonConvert.SerializeObject(runningQuiz), "runningQuizzes");
            }
            else
            {
                await MongoManager.SaveDocumentAsync("runningQuizzes", JsonConvert.SerializeObject(runningQuiz));
            }
            // Generera QuizMasterVM och returnera

            var           quizMasterVM = new QuizMasterVM(runningQuiz);
            StringBuilder songList     = new StringBuilder();

            foreach (var song in quizMasterVM.Songs)
            {
                songList.Append(song.SpotifyReferenceID);
                if (song != quizMasterVM.Songs[quizMasterVM.Songs.Count - 1])
                {
                    songList.Append(",");
                }
            }
            quizMasterVM.SongList = songList.ToString();

            return(quizMasterVM);
        }