// 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)); } }
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")); }