Beispiel #1
0
        public void Index_Frozen_RedirectsToFrozenView()
        {
            _mergeAllRepository.Setup(m => m.GetBy(_dummyContext.Groep2.Id)).Returns(_dummyContext.Mergeall);
            _oefeningRepository.Setup(m => m.GetBy(_dummyContext.Oefening1.Naam)).Returns(_dummyContext.Oefening1);
            _boxRepository.Setup(m => m.getOefeningenByBox(_dummyContext.Sessie1.BoxNaam)).Returns(_dummyContext.BoxOefNamen);
            _vooruitgangRepository.Setup(m => m.GetBy(_dummyContext.Groep2.Id)).Returns(_dummyContext.Vooruitgang2);
            _groepsbewerkingRepository.Setup(m => m.GetBy(_dummyContext.Mergeall1.GroepsbewerkingOpgave)).Returns(_dummyContext.Groepsbewerking1);
            var oefeningEvm = new OefeningIndexViewModel()
            {
                Antwoord = "22"
            };
            var actionResult = _controller.Index(_dummyContext.Sessie2, oefeningEvm, _dummyContext.Groep2) as RedirectToActionResult;

            Assert.Equal("FrozenView", actionResult?.ActionName);
        }
Beispiel #2
0
        public ActionResult Index(Sessie sessie, Groep groep)
        {
            int welkeOef = ControleerVooruitgang(groep.Id);

            if (welkeOef == 0)
            {
                if (_vooruitgangRepository.GetBy(groep.Id) == null)
                {
                    //maak nieuwe vooruitgang want bestaat nog niet
                    Vooruitgang v = new Vooruitgang(sessie.Naam, groep.Id, 0, 0, 1, 0);
                    _vooruitgangRepository.add(v);
                    _vooruitgangRepository.saveChanges();
                }
            }

            //kijk of frozen indien ja ==> frozenview!!
            if (_vooruitgangRepository.GetBy(groep.Id).IsFrozen == 1)
            {
                return(RedirectToAction(nameof(FrozenView)));
            }

            //toon oefeningen

            _mergealls = _mergeallRepository.GetBy(groep.Id);                               //geef alle mergalls van die groep
            _oefening  = _oefeningRepository.GetBy(_mergealls.ElementAt(welkeOef).OefNaam); //neem oef object
            int aantalOefeningen = _boxRepository.getOefeningenByBox(sessie.BoxNaam).Count();
            //_oefening in try is out of range ==> alle oef zijn gedaan! toon uitkomst scherm!

            var vr = _vooruitgangRepository.GetBy(groep.Id);

            float progress = (vr.OefNummer * 1.0f / aantalOefeningen) * 100;

            if (progress == 0)
            {
                progress = 10;
            }
            Groepsbewerking        groepsbewerkingObject = _groepsbewerkingRepository.GetBy(_mergealls.ElementAt(welkeOef).GroepsbewerkingOpgave);
            OefeningIndexViewModel oefeningIndexModel    = new OefeningIndexViewModel(_oefening, groepsbewerkingObject, progress, groep.Id);

            return(View(oefeningIndexModel));
        }
Beispiel #3
0
        public ActionResult Index(Sessie sessie, OefeningIndexViewModel oefeningIndexModel, Groep groep)
        {
            int welkeOef = _vooruitgangRepository.GetBy(groep.Id).OefNummer;

            _mergealls = _mergeallRepository.GetBy(groep.Id);
            _oefening  = _oefeningRepository.GetBy(_mergealls.ElementAt(welkeOef).OefNaam);
            Vooruitgang     vooruitgang           = _vooruitgangRepository.GetBy(groep.Id);
            Groepsbewerking groepsbewerkingObject = _groepsbewerkingRepository.GetBy(_mergealls.ElementAt(welkeOef).GroepsbewerkingOpgave);
            Boolean         isvalidtimeleft       = true;

            //timeleft berekenen
            if (_oefening.Timeleft != 0)
            {
                var dateStart       = oefeningIndexModel.DateStart;
                var dateEnd         = DateTime.Now;
                var verschilinDatum = dateEnd - dateStart;

                //int timeleft omzetten naar ticks:
                var timeleftTicks = new TimeSpan(0, (int)_oefening.Timeleft, 0);

                if (verschilinDatum.Ticks > timeleftTicks.Ticks)
                {
                    isvalidtimeleft = false;
                }
            }
            if (vooruitgang.IsFrozen == 0)
            {
                String antwoord     = oefeningIndexModel.Antwoord;
                String realAntwoord = AlterAntwoord(_oefening.Antwoord, groepsbewerkingObject);
                if (antwoord == realAntwoord && isvalidtimeleft) //Juiste antwoord en binnen de tijd!!
                {
                    Vooruitgang vooruit        = _vooruitgangRepository.GetBy(groep.Id);
                    int         welkeOefening  = _vooruitgangRepository.GetBy(groep.Id).OefNummer;
                    int         aantalpogingen = _vooruitgangRepository.GetBy(groep.Id).AantalFoutePogingen;

                    _vooruitgangRepository.remove(_vooruitgangRepository.GetBy(groep.Id));

                    Vooruitgang nieuweVooruit = new Vooruitgang(sessie.Naam, groep.Id, welkeOefening + 1, welkeOefening + 1, 0, aantalpogingen);
                    _vooruitgangRepository.add(nieuweVooruit);


                    return(RedirectToAction(nameof(CorrectAntwoord)));
                }
                else if (isvalidtimeleft == false) //buiten de tijd
                {
                    _vooruitgangRepository.UpdateAantalPogingen(groep.Id);
                    _vooruitgangRepository.UpdateFrozen(groep.Id, true);


                    return(RedirectToAction(nameof(FrozenViewTime)));
                }
                else //fout antwoord!
                {
                    TempData["feedback"] = "Oeps, dat is verkeerd. De feedback voor deze oefening is: " + _oefening.Feedback;
                    _vooruitgangRepository.UpdateAantalPogingen(groep.Id);

                    if (_vooruitgangRepository.GetBy(groep.Id).AantalFoutePogingen >= 3)
                    {
                        _vooruitgangRepository.UpdateFrozen(groep.Id, true);
                        return(RedirectToAction(nameof(FrozenView)));
                    }
                    return(RedirectToAction(nameof(Index)));
                }
            }
            else
            {
                return(RedirectToAction(nameof(FrozenView)));
            }
        }