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); }
public async Task <int> AddFligth(FlightRaw model) { _context.Flight.Add(model); return(_context.SaveChanges()); }