예제 #1
0
        public static async Task <AnswerKeyVM> GetAnswerKeyVMAsync(string quizID)
        {
            AnswerKeyVM daBoss = new AnswerKeyVM();

            daBoss.RunningQuizID = quizID;

            var runningQuizJson = await MongoManager.GetOneQuizAsync(quizID, "runningQuizzes");

            var runningQuiz = JsonConvert.DeserializeObject <RunningQuiz>(runningQuizJson);

            var submittedAnswersJson = await MongoManager.GetAllAnswerFormsAsync(quizID, "answers");

            var submittedAnswers = JsonConvert.DeserializeObject <List <AnswerForm> >(submittedAnswersJson);

            // Stoppa in allt på rätt sätt i rätt AKVM

            var answerkeySongs = new List <AnswerKeySongVM>();

            int counter = 0;

            for (int i = 0; i < runningQuiz.Songs.Count; i++)
            {
                var questions = new List <AnswerKeyQuestionVM>();
                for (int j = 0; j < runningQuiz.Songs[i].Questions.Count; j++)
                {
                    var    answers = new List <AnswerKeySubmittedAnswerVM>();
                    string answer  = "";

                    for (int k = 0; k < submittedAnswers.Count; k++)
                    {
                        answer = submittedAnswers[k].Answers[counter];
                        answers.Add(new AnswerKeySubmittedAnswerVM {
                            Answer = answer, SubmitterName = submittedAnswers[k].SubmitterName, IsCorrect = (answer.ToLower() == (runningQuiz.Songs[i].Questions[j].CorrectAnswer).ToLower())
                        });
                    }
                    var correctAnswer = runningQuiz.Songs[i].Questions[j].CorrectAnswer;
                    var text          = runningQuiz.Songs[i].Questions[j].Text;
                    questions.Add(new AnswerKeyQuestionVM {
                        CorrectAnswer = correctAnswer, Text = text, SubmittedAnswers = new List <AnswerKeySubmittedAnswerVM>()
                    });
                    questions[j].SubmittedAnswers.AddRange(answers);
                    counter++;
                }
                var artist = runningQuiz.Songs[i].Artist;
                var title  = runningQuiz.Songs[i].Title;
                answerkeySongs.Add(new AnswerKeySongVM {
                    Artist = artist, Title = title, Questions = new List <AnswerKeyQuestionVM>()
                });
                answerkeySongs[i].Questions.AddRange(questions);
            }

            daBoss.Songs.AddRange(answerkeySongs);
            return(daBoss);
        }