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);
        }