public IActionResult Start(decimal id, AntwoordViewModel antwoordViewModel) { var groep = _groepRepository.GetById(id); if (groep == null) { return(NotFound()); } if (groep.getCurrentGroepPad(groep.Progress).Paden.Antwoord.Equals(antwoordViewModel.Antwoord)) { groep.ResetFout(); _groepRepository.SaveChanges(); if (groep.Contactleer) { return(RedirectToAction("Action", "Groep", new { Id = groep.Id })); } else { groep.VerhoogProgress(); _groepRepository.SaveChanges(); if (groep.Progress <= groep.GroepPad.Count) { return(RedirectToAction("Start", "Groep", new { Id = groep.Id })); } else { return(View("Schatkist")); } } } else { TempData["error"] = "Oplossing fout!"; if (groep.Fout == 3) { groep.Blok(); _groepRepository.SaveChanges(); return(RedirectToAction("Feedback", "Groep", new { Id = groep.Id })); } else if (groep.Fout < 3) { groep.VerhoogFout(); _groepRepository.SaveChanges(); if (groep.Fout == 3) { groep.Blok(); _groepRepository.SaveChanges(); return(RedirectToAction("Feedback", "Groep", new { Id = groep.Id })); } } } return(RedirectToAction("Start", "Groep", new { Id = groep.Id })); }
public ActionResult VerbeterVegetatieVragen(Leerling leerling, [Bind(Prefix = "Antwoorden")] AntwoordViewModel antwoorden) { if (ModelState.IsValid) { try { var vm = new OefeningLocatieVegTypesIndexViewModel(leerling); int index = 0; int juist = 0; var klimatogrammen = leerling.GeefKlimatogrammenDerdeGraad().ToList(); foreach (var vraag in vm.Vragen) { var klimatogram = klimatogrammen[index]; var antwoord = antwoorden.Antwoord[index]; var res = leerling.Graad.DeterminatieTabel.Determineer(klimatogram); vraag.Correct = res.VegetatieType.Naam.Equals(antwoord); if (vraag.Correct.Value) { juist++; } index++; } vm.AllesJuist = juist == antwoorden.Antwoord.Length; vm.Antwoorden = antwoorden; return(View("VegetatieTypes", vm)); } catch (Exception exception) { ModelState.AddModelError("", exception.Message); } } return(View()); }
public void ValideertVragenFoutief() { AntwoordViewModel aVM = new AntwoordViewModel(new string[] { "Juli" }); ViewResult result = _vraagController.Index(new Leerling { Graad = _graadMock.Object, Klimatogram = _mockKlimatogram.Object }, aVM) as ViewResult; VragenIndexViewModel vivm = result.Model as VragenIndexViewModel; Assert.IsNotNull(vivm.Vragen.ElementAt(0).Resultaat); Assert.IsFalse(vivm.Vragen.ElementAt(0).Resultaat.Value); }
public void VerbeterVegetatieVragenGeeftVoorCorrectAntwoordTrue() { Leerling leerling = _leerling.Object; Klimatogram k = _mockKlimatogram.Object; AntwoordViewModel antwoorden = new AntwoordViewModel() { Antwoord = new[] { leerling.Graad.DeterminatieTabel.Determineer(k).VegetatieType.Naam } }; ViewResult result = _locatieOefeningController.VerbeterVegetatieVragen(_leerling.Object, antwoorden) as ViewResult; OefeningLocatieVegTypesIndexViewModel vm = result.Model as OefeningLocatieVegTypesIndexViewModel; Assert.IsTrue(vm.AllesJuist.Value); }
public void VerbeterVegetatieVragenGeeftEenViewWeer() { Leerling leerling = _leerling.Object; Klimatogram k = _mockKlimatogram.Object; AntwoordViewModel antwoorden = new AntwoordViewModel() { Antwoord = new[] { "blabla" } }; ViewResult result = _locatieOefeningController.VerbeterVegetatieVragen(_leerling.Object, antwoorden) as ViewResult; OefeningLocatieVegTypesIndexViewModel vm = result.Model as OefeningLocatieVegTypesIndexViewModel; Assert.IsNotNull(vm); }
public void VerbeterVegetatieVragenGeeftVoorFoutiefAntwoordGeeftFalse() { Leerling leerling = _leerling.Object; Klimatogram k = _mockKlimatogram.Object; AntwoordViewModel antwoorden = new AntwoordViewModel() { Antwoord = new[] { "blabla" } }; ViewResult result = _locatieOefeningController.VerbeterVegetatieVragen(_leerling.Object, antwoorden) as ViewResult; OefeningLocatieVegTypesIndexViewModel vm = result.Model as OefeningLocatieVegTypesIndexViewModel; Assert.IsFalse(vm.AllesJuist.Value); }
public ActionResult Index(Leerling leerling, [Bind(Prefix = "Antwoorden")] AntwoordViewModel antwoorden) { if (ModelState.IsValid) { try { ActionResult route = RedirectIndienNodig(leerling); if (route != null) { return(route); } string[] antwden = leerling.ValideerVragen(antwoorden.Antwoord); AntwoordViewModel antw = new AntwoordViewModel(antwden); VragenIndexViewModel vraagVM = new VragenIndexViewModel(leerling.GeefVragen(), leerling.Klimatogram) { Antwoorden = antwoorden }; int index = 0; vraagVM.AllesJuist = leerling.Graad.Vragen.Where(v => { var res = v.ValideerVraag(antwoorden.Antwoord[index], leerling.Klimatogram); var vr = vraagVM.Vragen.ElementAt(index++); switch (res) { case Resultaat.Juist: vr.Resultaat = true; break; case Resultaat.Fout: vr.Resultaat = false; break; default: vr.Resultaat = null; break; } return(res != Resultaat.Juist); }).Count() == 0; return(View(vraagVM)); } catch (Exception exception) { ModelState.AddModelError("", exception.Message); } } return(View()); }
public void AlleVragenZijnCorrect() { string[] antwoorden = { "September" }; AntwoordViewModel avm = new AntwoordViewModel(antwoorden); ViewResult result = _vraagController.Index(new Leerling { Graad = _graadMock.Object, Klimatogram = _mockKlimatogram.Object }, avm) as ViewResult; VragenIndexViewModel vIVM = result.Model as VragenIndexViewModel; foreach (VraagViewModel vVM in vIVM.Vragen) { Assert.IsNotNull(vVM.Resultaat); Assert.IsTrue(vVM.Resultaat.Value); } }
public IActionResult Index(String id) { List <Double> lijst1 = new List <double>(); List <Double> lijst2 = new List <double>(); List <Double> lijst3 = new List <double>(); List <String> comp1 = new List <string>(); List <String> comp2 = new List <string>(); List <String> comp3 = new List <string>(); IngevuldeVacature vac = _ingevuldeVacatureRepository.GetBy(id); ICollection <RapportViewModel> models = new List <RapportViewModel>(); ViewBag.naam = vac.VoornaamSollicitant + " " + vac.AchternaamSollicitant; ViewBag.telefoon = vac.TelefoonSollicitant; ViewBag.mail = vac.EmailSollicitant; ViewBag.title = vac.Vacature.Functie; ViewBag.desc = vac.Vacature.Beschrijving; ViewBag.datum = vac.DatumIngevuld; foreach (ResponseGroup rg in vac.ResponseGroup.OrderBy(o => o.Competentie.Type).ThenBy(ol => ol.Competentie.Id)) { RapportViewModel rvm = new RapportViewModel(); rvm.CompetentieNaam = rg.Competentie.Naam; rvm.Verklaring = rg.Competentie.Verklaring; rvm.CompetentieType = rg.Competentie.Type; if (rg.Competentie.Vignet != null) { rvm.Vignet = rg.Competentie.Vignet.Naam; } else { rvm.Vignet = "LEEG"; } foreach (Response r in rg.Responses.OrderBy(r => r.Vraag.VraagVolgorde)) { AntwoordViewModel avm = new AntwoordViewModel(); avm.VraagStelling = r.Vraag.VraagStelling; avm.Antwoord = r.Vraag.OutputString; if (r.OpenAntwoord != null && r.OpenAntwoord.Trim().Length != 0) { avm.Antwoord = avm.Antwoord.Replace("$$", r.OpenAntwoord); } else { if (r.OptieKeuze != null) { if (r.OptieKeuze.Output != null && r.OptieKeuze.Output.Trim().Length != 0) { avm.Antwoord = avm.Antwoord.Replace("$$", r.OptieKeuze.Output); } else { avm.Antwoord = avm.Antwoord.Replace("$$", r.OptieKeuze.Input); } } else { avm.Antwoord = avm.Antwoord = "LEEG"; } } /* hier moet nog gezorgd worden dat de rubric kan vergeleken worden (dus soli en bedrijf antwoorden matchen)*/ if (r.Vraag.type.Equals(VraagType.RUBRIC)) { int result; VacatureCompetentie temp = vac.Vacature.CompetentiesLijst.Where(c => c.Competentie.Vragen.OrderBy(co => co.VraagVolgorde).FirstOrDefault().Id.Equals(r.Vraag.Id)).FirstOrDefault(); if (r.OptieKeuze == null || temp.GeselecteerdeOptie == null) { result = 0; } else { result = r.OptieKeuze.Score <= temp.GeselecteerdeOptie.Score ? 1 : 0; } if (r.Vraag.Competentie.Type.Equals(CompetentieType.GRONDHOUDING)) { lijst1.Add(result); comp1.Add(r.Vraag.Competentie.Naam); } if (r.Vraag.Competentie.Type.Equals(CompetentieType.KENNIS)) { lijst2.Add(result); comp2.Add(r.Vraag.Competentie.Naam); } if (r.Vraag.Competentie.Type.Equals(CompetentieType.VAARDIGHEDEN)) { lijst3.Add(result); comp3.Add(r.Vraag.Competentie.Naam); } } ViewBag.comp1 = comp1; ViewBag.comp2 = comp2; ViewBag.comp3 = comp3; rvm.vms.Add(avm); } models.Add(rvm); } ICollection <Group <string, RapportViewModel> > groups = new List <Group <string, RapportViewModel> >(); var results = models.GroupBy(m => m.CompetentieType).ToList(); FixDonutDiagrammen(lijst1, lijst2, lijst3); foreach (var item in results) { groups.Add(new Group <string, RapportViewModel> { Key = item.Key.ToString(), Values = item.ToList() }); } return(View(groups)); }