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); }
public async Task <Traveler> GetByIdAsync(int idTraveler) { return(await travelerRepository.GetByIdAsync(idTraveler) ?? throw new ArgumentException($"The traveler with id '{idTraveler}' doesn´t exist")); }
public async Task <Traveler> GetByIdAsync(Guid key) { var traveler = await travelerRepository.GetByIdAsync(key); return(traveler?.ToModel()); }