//Deze methode verwijdert een klant en de aan hem gelinkte Gebruiker. //Indien het een Hoofdklant(KlantAdmin) worden al zijn KlantAccounts en de aan hun gelinkte Gebruikers verwijdert. public void RemoveKlant(int id) { Klant k = GetKlant(id); Gebruiker user = repoUser.FindGebruiker(id); //Wordt gecheckt of het een KlantAccount is. if (k.IsKlantAccount == false) { List <Klant> klantenAcc = new List <Klant>(); klantenAcc = GetKlantenAccounts(k).ToList(); //Alle KlantAccounts worden opgehaald. foreach (Klant acc in klantenAcc) { //De KlantAccount en zijn Gebruiker worden verwijderd. Gebruiker userAcc = repoUser.FindGebruiker(acc.KlantId); repo.DeleteKlant(acc); repoUser.DeleteGebruiker(userAcc); } //De Klant(Admin) en zijn gebruiker worden verwijderd. repo.DeleteKlant(k); repoUser.DeleteGebruiker(user); } else { //Indien KlantAccount wordt enkel deze en zijn gebruiker verwijderd. repo.DeleteKlant(k); repoUser.DeleteGebruiker(user); } }
public KlantDTO DeleteKlant(string klantId) { var deletedKlant = _repositoryKlant.DeleteKlant(klantId); if (deletedKlant == null) { return(null); } try { _repositoryKlant.SaveChanges(); } catch (DbUpdateException) { return(null); } catch (Exception e) { throw new Exception(e.Message); } return(_klantMapper.MapToDTO(deletedKlant)); }