public async Task Add(Flight flight) { var departureAirport = await _airportRepository.GetById(flight.DepartureAirport.Id); var arriveAirport = await _airportRepository.GetById(flight.ArriveAirport.Id); var distance = GeolocationUtils.CalculateDistanceByCoordinates( departureAirport.Longitude, departureAirport.Latitude, arriveAirport.Longitude, arriveAirport.Latitude ); var hours = distance / 840; flight.ArriveDate = flight.DepartureDate.AddHours(hours); flight.FlightTime = hours; var createdFlight = await _flightRepository.Add(flight); _outputPort.Created(createdFlight); }