public int LoonVerliesVerzekeren(int lidId) { PersoonsVerzekering persoonsVerzekering; var lid = _ledenRepo.ByID(lidId); Gav.Check(lid); if (lid.GroepsWerkJaar.Groep.StopDatum != null && lid.GroepsWerkJaar.Groep.StopDatum < DateTime.Now) { throw FaultExceptionHelper.FoutNummer(FoutNummer.GroepInactief, Resources.GroepInactief); } var verzekeringstype = (from g in _verzekerRepo.Select() where g.ID == (int)Verzekering.LoonVerlies select g).First(); try { persoonsVerzekering = _verzekeringenMgr.Verzekeren(lid, verzekeringstype, DateTime.Today, _groepsWerkJarenMgr.EindDatum(lid.GroepsWerkJaar)); } catch (FoutNummerException ex) { throw FaultExceptionHelper.FoutNummer(ex.FoutNummer, ex.Message); } catch (BlokkerendeObjectenException <PersoonsVerzekering> ) { // TODO: beter faultcontract. (VerzekeringsInfo?) throw FaultExceptionHelper.BestaatAl("Verzekering"); } #if KIPDORP using (var tx = new TransactionScope()) { #endif _verzekeringenSync.Bewaren(persoonsVerzekering, lid.GroepsWerkJaar); _ledenRepo.SaveChanges(); #if KIPDORP tx.Complete(); } #endif return(lid.GelieerdePersoon.ID); }