Beispiel #1
0
        public async Task <Trip> CreateAsync(Trip trip)
        {
            if (trip.Id != 0)
            {
                throw new ArgumentException("The Id must be 0", nameof(trip.Id));
            }

            Traveler traveler = await travelerRepository.GetByIdAsync(trip.IdDriver);

            if (traveler == null)
            {
                throw new TravelerNotExistException($"'{trip.IdDriver}' doesn´t exists");
            }

            if (!traveler.IsDriver)
            {
                throw new TravelerIsNotDriverException($"The traveler '{traveler.Id} - {traveler.Name}' not is a driver");
            }

            trip = tripRepository.Add(trip);
            await tripRepository.UnitOfWork.SaveChangesAsync();

            return(trip);
        }
Beispiel #2
0
 public async Task <Traveler> GetByIdAsync(int idTraveler)
 {
     return(await travelerRepository.GetByIdAsync(idTraveler)
            ?? throw new ArgumentException($"The traveler with id '{idTraveler}' doesn´t exist"));
 }
Beispiel #3
0
        public async Task <Traveler> GetByIdAsync(Guid key)
        {
            var traveler = await travelerRepository.GetByIdAsync(key);

            return(traveler?.ToModel());
        }