public async Task <Unit> Handle(UpdateFlightCommand request, CancellationToken cancellationToken)
        {
            var entity = await _context.Flights
                         .SingleOrDefaultAsync(c => c.DepartureAirportId == request.DepartureAirportId && c.DestinationAirportId == request.DestinationAirportId, cancellationToken);

            if (entity == null)
            {
                throw new NotFoundException(nameof(Flight), request.DepartureAirportId);
            }
            if (request.Distance != entity.Distance)
            {
                entity.Distance = request.Distance;
            }
            if (request.FuelConsumption != entity.FuelConsumption)
            {
                entity.FuelConsumption = request.FuelConsumption;
            }
            await _context.SaveChangesAsync(cancellationToken);

            return(Unit.Value);
        }
        public async Task <FuelConsumptionModel> Handle(GetFuelConsumptionQuery request, CancellationToken cancellationToken)
        {
            var entityDeparture = await _context.Airports
                                  .SingleOrDefaultAsync(c => c.AirportId == request.DepartureAirportId, cancellationToken);

            if (entityDeparture == null)
            {
                throw new NotFoundException(nameof(Airport), request.DepartureAirportId);
            }

            var entityDestination = await _context.Airports
                                    .SingleOrDefaultAsync(c => c.AirportId == request.DestinationAirportId, cancellationToken);

            if (entityDeparture == null)
            {
                throw new NotFoundException(nameof(Airport), request.DestinationAirportId);
            }

            var queryResult = await _context.Flights.Where(filter => filter.DepartureAirportId == request.DepartureAirportId && filter.DestinationAirportId == request.DestinationAirportId).FirstOrDefaultAsync();

            if (queryResult == null)
            {
                double calculatedDistance = CalcualteDistanceBetweenAirports(entityDeparture, entityDestination);
                queryResult = new Flight()
                {
                    DepartureAirportId   = request.DepartureAirportId,
                    DestinationAirportId = request.DestinationAirportId,
                    Distance             = calculatedDistance,
                    FuelConsumption      = CaculateFuelConsumption(calculatedDistance)
                };
                _context.Flights.Add(queryResult);
                await _context.SaveChangesAsync();
            }
            return(new FuelConsumptionModel()
            {
                Consumption = queryResult.FuelConsumption, Distance = queryResult.Distance
            });
        }