public override async Task <DefaultResponse> AddFlight(FlightRequestModel request, ServerCallContext context)
        {
            var result = new DefaultResponse();

            try
            {
                var aircraft = await _hangarProxy.GetAircraft(request.Aircraft);

                if (string.IsNullOrEmpty(aircraft?.LicensePlate))
                {
                    result.Message = aircraft.Message;
                    return(result);
                }

                var airports = await _airportProxy.GetAllAirports();

                if (!airports.Where(x => x.City == request.Source).Any())
                {
                    result.Message = $"There is no connection with the airport in {request.Source}";
                    return(result);
                }

                if (!airports.Where(x => x.City == request.Target).Any())
                {
                    result.Message = $"There is no connection with the airport in {request.Target}";
                    return(result);
                }

                var flightRoute = await _airlineRepository.GetFligthRoute(airports.Where(x => x.City == request.Source).FirstOrDefault().Id, airports.Where(x => x.City == request.Target).FirstOrDefault().Id);

                if (flightRoute == null)
                {
                    result.Message = $"There is no air route between {request.Source} and {request.Target}";
                    return(result);
                }

                var flight = new FlightRaw()
                {
                    Aircraft    = request.Aircraft,
                    FligthRoute = flightRoute.Id,
                    State       = request.State
                };
                _airlineRepository.AddFligth(flight);
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, $"ERROR: Adding Flight");
            }

            return(result);
        }
Exemple #2
0
 public async Task <int> AddFligth(FlightRaw model)
 {
     _context.Flight.Add(model);
     return(_context.SaveChanges());
 }