// Maakt een nieuwe Klant en koppelt ze direct aan een departement
 public void Nieuw(Klant klant, int departementId)
 {            
     Departement departement = uow.DepartementRepository.Find(departementId);
     DepartementKlant.koppelDepartementAanKlant(departement, klant);
     uow.KlantRepository.InsertOrUpdate(klant);
     uow.saveChanges();
 }
 public static DepartementKlant koppelDepartementAanKlant(Departement departement, Klant klant)
 {
     DepartementKlant departementKlant = new DepartementKlant(departement, klant);
     klant.DepartementKlanten.Add(departementKlant);
     departement.DepartementKlanten.Add(departementKlant);
     return departementKlant;
 }
 private DepartementKlant(Departement departement, Klant klant) : this()
 {
     Departement = departement;
     DepartementId = departement.Id;
     Klant = klant;
     KlantId = klant.Id;
 }
 public void InsertOrUpdate(Klant klant)
 {
     if (klant.Id == default(int)) {
         // New entity
         context.Klants.Add(klant);
     } else {
         // Existing entity
         context.Entry(klant).State = EntityState.Modified;
     }
 }
 public void Nieuw(Klant klant)
 {
     uow.KlantRepository.InsertOrUpdate(klant);
     uow.saveChanges();
 }
 public JsonResult Update(Klant klant)
 {            
     try
     {
         uow.KlantRepository.InsertOrUpdate(klant);
         uow.saveChanges();                
         return Json(new { Result = "OK" });
     }
     catch (Exception ex)
     {
         return Json(new { Result = "ERROR", Message = "Kon klant niet aanpassen: " + ex.Message });
     }
 }
        public JsonResult Create(Klant klant, int? GekozenDepartement)
        {
            if (!GekozenDepartement.HasValue)
            {
                return Json(new { Result = "ERROR", Message = "Een klant moet gekoppeld zijn aan minstens één departement" });
            }

            try
            {
                klantService.Nieuw(klant, GekozenDepartement.Value);
                var jsonklant = new { Id = klant.Id, Bedrijfsnaam = klant.Bedrijfsnaam, Ondernemingsnummer = klant.Ondernemingsnummer, Adres = klant.Adres, Postcode = klant.Postcode, Plaats = klant.Plaats };
                return Json(new { Result = "OK" });
            }
            catch (DbEntityValidationException dbEx)
            {
                string message = "";
                foreach(DbEntityValidationResult res in dbEx.EntityValidationErrors)
                {
                    message += res.ValidationErrors.First().ErrorMessage + Environment.NewLine;
                }
                return Json(new { Result = "ERROR", Message = "Kon klant niet aanpassen: " + message });
            }
            catch (Exception ex)
            {
                return Json(new { Result = "ERROR", Message = "Kon klant niet aanpassen: " + ex.Message });
            }
        }