public void TestVoegToe_ModelError_RedirectsToIndex()
        {
            _controller.ModelState.AddModelError("", "Model error");
            MedewerkerNiveauBaatViewModel model = new MedewerkerNiveauBaatViewModel();

            var result = _controller.VoegToe(_analyse, model) as RedirectToActionResult;

            Assert.Equal("Index", result?.ActionName);
        }
        public void TestVoegToe_RepositoryGooitException_ReturnsView()
        {
            _analyseRepository.Setup(r => r.Save()).Throws(new Exception());
            MedewerkerNiveauBaatViewModel model = new MedewerkerNiveauBaatViewModel();

            var result = _controller.VoegToe(_analyse, model) as RedirectToActionResult;

            Assert.Equal("Index", result?.ActionName);

            _exceptionLogRepository.Verify(r => r.Add(It.IsAny <ExceptionLog>()), Times.Once);
            _exceptionLogRepository.Verify(r => r.Save(), Times.Once);
        }
        public void TestBewerk_Succes_RedirectsToIndex()
        {
            MedewerkerNiveauBaatViewModel model = new MedewerkerNiveauBaatViewModel()
            {
                Id    = 1,
                Type  = Type.Baat,
                Soort = Soort.MedewerkersZelfdeNiveau,
                Uren  = 37,
                BrutoMaandloonFulltime = "" + 3240
            };

            var result = _controller.Bewerk(_analyse, model) as RedirectToActionResult;

            Assert.Equal("Index", result?.ActionName);
        }
        public IActionResult VoegToe(Analyse analyse, MedewerkerNiveauBaatViewModel model)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    analyse = _analyseRepository.GetById(analyse.AnalyseId, Soort.MedewerkersHogerNiveau);
                    DecimalConverter     dc   = new DecimalConverter();
                    MedewerkerNiveauBaat baat = new MedewerkerNiveauBaat
                    {
                        Type  = model.Type,
                        Soort = model.Soort,
                        Uren  = model.Uren,
                        BrutoMaandloonFulltime = dc.ConvertToDecimal(model.BrutoMaandloonFulltime)
                    };

                    analyse.MedewerkersHogerNiveauBaten.Add(baat);
                    analyse.DatumLaatsteAanpassing = DateTime.Now;
                    _analyseRepository.Save();

                    TempData["message"] = Meldingen.VoegToeSuccesvolBaat;
                }
            }
            catch (Exception e)
            {
                if (e is ArgumentException || e is FormatException)
                {
                    TempData["error"] = e.Message;
                }
                else
                {
                    _exceptionLogRepository.Add(new ExceptionLog(e, "MedewerkersHogerNiveau", "VoegToe -- POST --"));
                    _exceptionLogRepository.Save();
                    TempData["error"] = Meldingen.OpslaanFoutmeldingKost;
                    return(RedirectToAction("Index"));
                }
            }

            return(RedirectToAction("Index"));
        }
        public IActionResult Bewerk(Analyse analyse, int id)
        {// id is het id van de baat die moet bewerkt wordens
            try
            {
                analyse = _analyseRepository.GetById(analyse.AnalyseId, Soort.MedewerkersHogerNiveau);
                MedewerkerNiveauBaat          baat  = KostOfBaatExtensions.GetBy(analyse.MedewerkersHogerNiveauBaten, id);
                MedewerkerNiveauBaatViewModel model = new MedewerkerNiveauBaatViewModel();
                DecimalConverter dc = new DecimalConverter();

                if (baat != null)
                {
                    // parameters voor formulier instellen
                    model.Id    = id;
                    model.Type  = baat.Type;
                    model.Soort = baat.Soort;
                    model.Uren  = baat.Uren;
                    model.BrutoMaandloonFulltime = dc.ConvertToString(baat.BrutoMaandloonFulltime);

                    return(PartialView("_Formulier", model));
                }
            }
            catch (Exception e)
            {
                if (e is ArgumentException || e is FormatException)
                {
                    TempData["error"] = e.Message;
                }
                else
                {
                    _exceptionLogRepository.Add(new ExceptionLog(e, "MedewerkersHogerNiveau", "Bewerk -- GET --"));
                    _exceptionLogRepository.Save();
                    TempData["error"] = Meldingen.OpslaanFoutmeldingKost;
                    return(RedirectToAction("Index"));
                }
            }

            return(RedirectToAction("Index"));
        }
        public IActionResult Bewerk(Analyse analyse, MedewerkerNiveauBaatViewModel model)
        {// id is het id van de baat die moet bewerkt worden
            try
            {
                analyse = _analyseRepository.GetById(analyse.AnalyseId, Soort.MedewerkersHogerNiveau);
                MedewerkerNiveauBaat baat = KostOfBaatExtensions.GetBy(analyse.MedewerkersHogerNiveauBaten, model.Id);
                DecimalConverter     dc   = new DecimalConverter();
                if (ModelState.IsValid && baat != null)
                {
                    baat.Id    = model.Id;
                    baat.Type  = model.Type;
                    baat.Soort = model.Soort;
                    baat.Uren  = model.Uren;
                    baat.BrutoMaandloonFulltime = dc.ConvertToDecimal(model.BrutoMaandloonFulltime);

                    analyse.DatumLaatsteAanpassing = DateTime.Now;
                    _analyseRepository.Save();

                    TempData["message"] = Meldingen.OpslaanSuccesvolBaat;
                }
            }
            catch (Exception e)
            {
                if (e is ArgumentException || e is FormatException)
                {
                    TempData["error"] = e.Message;
                }
                else
                {
                    _exceptionLogRepository.Add(new ExceptionLog(e, "MedewerkersHogerNiveau", "Bewerk -- POST --"));
                    _exceptionLogRepository.Save();
                    TempData["error"] = Meldingen.OpslaanFoutmeldingKost;
                    return(RedirectToAction("Index"));
                }
            }

            return(RedirectToAction("Index"));
        }
        public IActionResult VoegToe()
        {
            MedewerkerNiveauBaatViewModel model = new MedewerkerNiveauBaatViewModel();

            return(PartialView("_Formulier", model));
        }