/// <summary> /// Fetches the details for a single aircraft. /// </summary> /// <param name="fetchedDetail"></param> /// <returns></returns> protected override AircraftDetail DoFetchAircraft(AircraftFetcher <string, AircraftDetail> .FetchedDetail fetchedDetail) { var databaseAircraft = _AutoConfigDatabase.Database.GetAircraftByCode(fetchedDetail.Aircraft.Icao24); var onlineAircraft = _AircraftOnlineLookupManager.Lookup(fetchedDetail.Aircraft.Icao24, databaseAircraft, searchedForBaseStationAircraft: true); return(ApplyDatabaseRecord(fetchedDetail.Detail, databaseAircraft, onlineAircraft, fetchedDetail.Aircraft, fetchedDetail.IsFirstFetch)); }
/// <summary> /// See base docs. /// </summary> /// <param name="fetchedDetail"></param> /// <returns></returns> protected override CallsignRouteDetail DoFetchAircraft(AircraftFetcher <CallsignRouteFetcher.Key, CallsignRouteDetail> .FetchedDetail fetchedDetail) { var key = fetchedDetail.Key; var detail = fetchedDetail.Detail; if (!String.IsNullOrEmpty(key.Icao24) && !String.IsNullOrEmpty(key.Callsign)) { var callsignUsed = key.Callsign; var parsed = new Callsign(callsignUsed); var airlines = _StandingDataManager.FindAirlinesForCode(parsed.Code); var isPositioning = airlines.Any(r => r.IsPositioningFlightNumber(parsed.TrimmedNumber)); var isCharter = airlines.Any(r => r.IsCharterFlightNumber(parsed.TrimmedNumber)); Route route = null; if (!isPositioning && !isCharter) { var callsigns = _CallsignParser.GetAllRouteCallsigns(key.Callsign, key.OperatorIcao); foreach (var callsign in callsigns) { callsignUsed = callsign; route = _StandingDataManager.FindRoute(callsignUsed); if (route != null) { break; } } if (route == null) { callsignUsed = key.Callsign; } } detail = new CallsignRouteDetail() { Callsign = key.Callsign, UsedCallsign = callsignUsed, Icao24 = key.Icao24, Route = route, IsCharterFlight = isCharter, IsPositioningFlight = isPositioning, }; OnFetched(new EventArgs <CallsignRouteDetail>(detail)); } return(detail); }
/// <summary> /// See base docs. /// </summary> /// <param name="fetchedDetail"></param> /// <returns></returns> protected override CallsignRouteDetail DoFetchAircraft(AircraftFetcher <CallsignRouteFetcher.Key, CallsignRouteDetail> .FetchedDetail fetchedDetail) { var key = fetchedDetail.Key; var detail = fetchedDetail.Detail; if (!String.IsNullOrEmpty(key.Icao24) && !String.IsNullOrEmpty(key.Callsign)) { var callsignUsed = key.Callsign; Route route = null; var callsigns = _CallsignParser.GetAllRouteCallsigns(key.Callsign, key.OperatorIcao); foreach (var callsign in callsigns) { callsignUsed = callsign; route = _StandingDataManager.FindRoute(callsignUsed); if (route != null) { break; } } if (route == null) { callsignUsed = key.Callsign; } detail = new CallsignRouteDetail() { Callsign = key.Callsign, UsedCallsign = callsignUsed, Icao24 = key.Icao24, Route = route, }; OnFetched(new EventArgs <CallsignRouteDetail>(detail)); } return(detail); }