public async Task ReserverAsync(IdVoyage idVoyage, IReadOnlyCollection <Passager> passagers) { var train = await _trainRepository.GetTrainDuVoyageAsync(idVoyage); if (train == null) { throw new VoyageSansTrainException(idVoyage); } if (!train.PeutReserver(passagers.Count, SeuilCapacite)) { throw new TrainPleinException(); } var reservation = train.Reserver(passagers, SeuilCapacite); await _reservationRepository.SaveAsync(reservation); await _notifieur.NotifierReservationValideeAsync(reservation); }