Skip to content

Instantly share code, notes, and snippets.

@benjaminvanrenterghem
Created September 16, 2022 16:43
Show Gist options
  • Save benjaminvanrenterghem/0be8cdfc61c1eeae659918ea1a7b2edb to your computer and use it in GitHub Desktop.
Save benjaminvanrenterghem/0be8cdfc61c1eeae659918ea1a7b2edb to your computer and use it in GitHub Desktop.
Manager coupling
public int VoegBestuurderToe(Bestuurder bestuurder) {
if(bestuurder is null) {
throw new BestuurderManagerException("Meegegeven bestuurder is null.");
} else if(bestuurder.Id is not null || bestuurder.Id > 0) {
throw new BestuurderManagerException("Id van bestuurder is reeds ingesteld.");
} else if(this.ZoekBestuurders("Rijksregisternummer", bestuurder.RijksRegisterNummer).Count > 0) {
throw new BestuurderManagerException("Er bestaat reeds een bestuurder met dit RRN.");
}
// Afhankelijkheid #1
if(bestuurder.Tankkaart is not null) {
if(bestuurder.Tankkaart.Id is null) {
throw new BestuurderManagerException("Tankkaart werd meegegeven maar deze heeft geen id.");
}
if(_fleetManager.TankkaartManager.GeefTankkaartDetail((int)bestuurder.Tankkaart.Id) is null) {
throw new BestuurderManagerException("Tankkaart werd meegegeven maar kon niet gevonden worden.");
}
}
// Afhankelijkheid #2
if(bestuurder.Voertuig is not null) {
if (bestuurder.Voertuig.Id is null) {
throw new BestuurderManagerException("Voertuig werd meegegeven maar deze heeft geen id.");
}
if(_fleetManager.VoertuigManager.GeefVoertuigDetail((int)bestuurder.Voertuig.Id) is null) {
throw new BestuurderManagerException("Voertuig werd meegegeven maar kon niet gevonden worden.");
}
}
try {
return _opslag.VoegBestuurderToe(bestuurder);
} catch (Exception e) {
throw new BestuurderManagerException("Bestuurder kon niet toegevoegd worden.", e);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment