public IActionResult NieuweWerkgever(Analyse analyse, WerkgeverViewModel model) { try { Departement departement = _departementRepository.GetByName(model.Departement); analyse = _analyseRepository.GetByIdAll(analyse.AnalyseId); DecimalConverter dc = new DecimalConverter(); // de werkgever al aanmaken, zodat straks de controle kan gebeuren Werkgever werkgever = new Werkgever { // nieuwe werkgever aanmaken Naam = model.Naam, Postcode = model.Postcode, Gemeente = model.Gemeente, AantalWerkuren = dc.ConvertToDecimal(model.AantalWerkuren), PatronaleBijdrage = dc.ConvertToDecimal(model.PatronaleBijdrage) }; // straat en nummer zijn niet verplicht, // maar als ze ingevuld zijn, instellen in de werkgever werkgever.Straat = model.Straat; werkgever.Nummer = model.Nummer; werkgever.Bus = model.Bus; bool result = ControleerBestaandDepartement(departement, werkgever); if (result) { TempData["Error"] = "De werkgever " + model.Naam + " met als departement " + model.Departement + " bestaat al."; // terugsturen naar het formulier return(View("NieuweWerkgever", model)); } // anders maken we een nieuw departement aan departement = new Departement(model.Departement) { Werkgever = werkgever }; werkgever.Departementen.Add(departement); // alles instellen _departementRepository.Add(departement); analyse.Departement = departement; // alles opslaan _departementRepository.Save(); _analyseRepository.Save(); TempData["message"] = "De werkgever is succesvol toegevoegd"; return(RedirectToAction("Index", "ContactPersoon")); } catch (Exception e) { if (e is ArgumentException || e is FormatException) { TempData["error"] = e.Message; } else { _exceptionLogRepository.Add(new ExceptionLog(e, "Werkgever", "NieuweWerkgever -- POST --")); _exceptionLogRepository.Save(); TempData["error"] = "Er ging onverwachts iets fout, probeer later opnieuw"; } } return(View("NieuweWerkgever", model)); }