public ActionResult Next(int next, int[] oznaceniOdgovori) { PitanjeOdgovorVM.PitanjeInfo model; if (oznaceniOdgovori != null) { model = svaPitanja[next]; model.PitanjeOrder = next + 1; //if(next <= aktivniTest.Count) //{ // int trazi = svaPitanja[next-1].Id; // TestOdgovor nadji = db.TestOdgovori.SingleOrDefault(a => a.PitanjeId == trazi && a.TestId == trenutniTest.Id); // //TestOdgovor brisi = db.TestOdgovori.Find(nadji); // aktivniTest.Remove(nadji); // db.TestOdgovori.Remove(nadji); //} TestOdgovor pit = new TestOdgovor { TestId = trenutniTest.Id, PitanjeId = svaPitanja[next - 1].Id, OdgovorTacan = false }; aktivniTest.Add(pit); db.TestOdgovori.Add(pit); db.SaveChanges(); if (oznaceniOdgovori != null) { foreach (int item in oznaceniOdgovori) { KorisnikOdgovor ko = new KorisnikOdgovor { OdgovorId = item, TestOdgovorId = pit.Id }; KorisnikOdgovori.Add(ko); } db.KorisnikOdgovori.AddRange(KorisnikOdgovori); db.SaveChanges(); } } else { ModelState.AddModelError("", "Odabrati barem jedan odgovor!"); model = svaPitanja[next - 1]; model.PitanjeOrder = next; } return(View("Test", model)); }
public ActionResult Rezultat(int pitanje, int[] oznaceniOdgovori) { PitanjeOdgovorVM.PitanjeInfo kraj = svaPitanja[pitanje - 1]; if (oznaceniOdgovori != null) { Test t = db.Testovi.SingleOrDefault(c => c.Id == trenutniTest.Id); t.VrijemeZavrsetka = DateTime.Now; TestOdgovor pit = new TestOdgovor { TestId = trenutniTest.Id, PitanjeId = kraj.Id, OdgovorTacan = false }; db.TestOdgovori.Add(pit); db.SaveChanges(); if (oznaceniOdgovori != null) { foreach (int item in oznaceniOdgovori) { KorisnikOdgovor ko = new KorisnikOdgovor { OdgovorId = item, TestOdgovorId = pit.Id }; KorisnikOdgovori.Add(ko); } } aktivniTest = db.TestOdgovori.Where(v => v.TestId == trenutniTest.Id).ToList(); db.KorisnikOdgovori.AddRange(KorisnikOdgovori); db.SaveChanges(); int brojOdg = 0; int brojPog = 0; for (int i = 0; i < svaPitanja.Count; i++) { for (int j = 0; j < svaPitanja[i].Odgovori.Count; j++) { for (int k = 0; k < KorisnikOdgovori.Count; k++) { if (svaPitanja[i].Vrsta == "MC-MA") { if (brojOdg == 0) { int l = svaPitanja[i].Id; brojOdg = db.Odgovori.Where(m => m.PitanjeId == l && m.Tacan == true).Count(); } if (svaPitanja[i].Odgovori[j].Id == KorisnikOdgovori[k].OdgovorId && svaPitanja[i].Odgovori[j].IsCorrect) { brojPog++; } if (brojOdg == brojPog) { aktivniTest[i].OdgovorTacan = true; } } else if (svaPitanja[i].Odgovori[j].Id == KorisnikOdgovori[k].OdgovorId && svaPitanja[i].Odgovori[j].IsCorrect) { aktivniTest[i].OdgovorTacan = true; } } } brojOdg = 0; brojPog = 0; } db.SaveChanges(); float ukupnoBodova = db.TestOdgovori.Where(r => r.TestId == trenutniTest.Id).Sum(z => z.Pitanje.Bod); float?osvojenoBodova = db.TestOdgovori.Where(c => c.OdgovorTacan == true && c.TestId == trenutniTest.Id).Sum(d => (int?)d.Pitanje.Bod); float bodovi = 0; if (osvojenoBodova != null) { bodovi = (float)osvojenoBodova; } float model = (bodovi / ukupnoBodova) * 100; t.Rezultat = model; db.SaveChanges(); return(View("Rezultat", model)); } else { ModelState.AddModelError("", "Odabrati barem jedan odgovor!"); return(View("Test", kraj)); } }