Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        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));
            }
        }