Esempio n. 1
0
        // GET: DoTest
        public ActionResult Index(int id)
        {
            TempData["TestId"] = id;
            DoTestModel model = new DoTestModel();

            using (GlossaryModel db = new GlossaryModel())
            {
                List <Word> words = (from w in db.Words
                                     where w.TestId == id
                                     select w).ToList();

                model.Words = words;
                List <string> guessedList = new List <string>();
                foreach (var item in words)
                {
                    guessedList.Add("");
                }
                model.mGuessedWord = guessedList;
                return(View(model));
            }
        }
Esempio n. 2
0
        public ActionResult GuessedWords(DoTestModel model)
        {
            int id = (int)TempData["TestId"];

            IEnumerable <string> word2FromDB = null;
            IEnumerable <string> word1FromDB = null;

            List <string> guessedWrongFromUser = new List <string>();
            List <string> guessedWordFromUser  = new List <string>();
            List <string> word2FromDBList      = new List <string>();
            List <string> facitWord2           = new List <string>();
            List <string> word1FromDBList      = new List <string>();
            List <string> facitWord1           = new List <string>();
            List <string> guessedCorrect       = new List <string>();

            //Ord som anv. har gissat och skrivit in i view DoTest/index
            guessedWordFromUser = model.mGuessedWord;

            if (model != null)
            {
                using (GlossaryModel db = new GlossaryModel())
                {
                    word1FromDB = (from w in db.Words
                                   where w.TestId == id
                                   select w.Word1).ToList();

                    word1FromDBList = word1FromDB.ToList();

                    word2FromDB = (from w in db.Words
                                   where w.TestId == id
                                   select w.Word2).ToList();

                    word2FromDBList = word2FromDB.ToList();


                    //De korrekta svaren på översättningsspråket(word2) som användaren svarat fel på
                    facitWord2 = word2FromDBList.Except(guessedWordFromUser).ToList();

                    //De korrekta svaret/svaren på originalspråket(word1) som användaren svarat fel på
                    facitWord1 = (from a in db.Words
                                  where facitWord2.Contains(a.Word2)
                                  select a.Word1).ToList();

                    //De ord som användaren skrev in och som blev fel
                    guessedWrongFromUser = guessedWordFromUser.Except(word2FromDB).ToList();

                    //De ord som användaren skrev in och blev rätt
                    guessedCorrect = facitWord2.Except(guessedWordFromUser).ToList();
                }
            }

            /*Skapar ett objekt av List<Answers> som ligger i DoTestModel
             * Objektet: FacitWord1 = Det korrekta svaret på originalspråket som användaren skrivit fel på
             * FacitWord2 = Det korrekta svaret på översättningsspråket som användaren svarat fel på
             * GuessedWrong = De felaktiga svaren som användaren har skrivit in    */

            List <Answers> answers   = new List <Answers>();
            Answers        objAnswer = new Answers();

            objAnswer.TestId             = id;
            objAnswer.FacitWord1         = word1FromDBList;
            objAnswer.FacitWord2         = word2FromDBList;
            objAnswer.GuessedWrong       = guessedWordFromUser;
            objAnswer.GueesedRight       = guessedCorrect;
            objAnswer.CorrectAnswers     = word1FromDBList.Count - facitWord2.Count;      //Antal rätt användaren fick på testen
            objAnswer.NumberOfTotalWords = word1FromDBList.Count;                         //Totalt antal ord i testet
            answers.Add(objAnswer);

            //Lagrar objektet in en session så det går att skicka på ett effektivt sätt mellan controllers
            Session["answerObject"] = objAnswer;
            return(RedirectToAction("Result"));
        }