private string ForTableHeader(PrintOptions printOptions = null)
        {
            AirportStatUtils.AirportStatsLogger(Log.FromPool("").WithCodepoint());
            string str = string.Empty;

            str += "<thead><tr>\n";
            if (string.IsNullOrWhiteSpace(printOptions.AirlineName))
            {
                str += $"<th>{i18n.Get("TBFlash.AirportStats.AirlineDailyStats.stats0")}</th>\n";
            }
            str += $"<th>{i18n.Get("TBFlash.AirportStats.AirlineDailyStats.stats1")}</th>\n";
            str += $"<th>{i18n.Get("TBFlash.AirportStats.AirlineDailyStats.stats22")}</th>\n";
            str += $"<th>{i18n.Get("TBFlash.AirportStats.AirlineDailyStats.stats2")}</th>\n";
            str += $"<th>{i18n.Get("TBFlash.AirportStats.AirlineDailyStats.stats3")}</th>\n";
            str += $"<th>{i18n.Get("TBFlash.AirportStats.AirlineDailyStats.stats4")}</th>\n";
            str += $"<th>{i18n.Get("TBFlash.AirportStats.AirlineDailyStats.stats5")}</th>\n";
            str += $"<th>{i18n.Get("TBFlash.AirportStats.AirlineDailyStats.stats6")}</th>\n";
            str += $"<th>{i18n.Get("TBFlash.AirportStats.AirlineDailyStats.stats7")}</th>\n";
            str += $"<th>{i18n.Get("TBFlash.AirportStats.AirlineDailyStats.stats8")}</th>\n";
            str += $"<th>{i18n.Get("TBFlash.AirportStats.AirlineDailyStats.stats9")}</th>\n";
            str += $"<th>{i18n.Get("TBFlash.AirportStats.AirlineDailyStats.stats10")}</th>\n";
            str += $"<th>{i18n.Get("TBFlash.AirportStats.AirlineDailyStats.stats11")}</th>\n";
            str += $"<th>{i18n.Get("TBFlash.AirportStats.AirlineDailyStats.stats12")}</th>\n";
            str += $"<th>{i18n.Get("TBFlash.AirportStats.AirlineDailyStats.stats13")}</th>\n";
            str += $"<th>{i18n.Get("TBFlash.AirportStats.AirlineDailyStats.stats14")}</th>\n";
            str += $"<th>{i18n.Get("TBFlash.AirportStats.AirlineDailyStats.stats15")}</th>\n";
            str += $"<th>{i18n.Get("TBFlash.AirportStats.AirlineDailyStats.stats16")}</th>\n";
            str += $"<th>{i18n.Get("TBFlash.AirportStats.AirlineDailyStats.stats17")}</th>\n";
            str += $"<th>{i18n.Get("TBFlash.AirportStats.AirlineDailyStats.stats18")}</th>\n";
            str += $"<th>{i18n.Get("TBFlash.AirportStats.AirlineDailyStats.stats19")}</th>\n";
            str += $"<th>{i18n.Get("TBFlash.AirportStats.AirlineDailyStats.stats20")}</th>\n";
            str += $"<th>{i18n.Get("TBFlash.AirportStats.AirlineDailyStats.stats21")}</th>\n";
            str += "</tr></thead>\n";
            return(str);
        }
        private string ForTableFlightRecords(PrintOptions printOptions = null)
        {
            AirportStatUtils.AirportStatsLogger(Log.FromPool("").WithCodepoint());
            string str = string.Empty;

            IOrderedEnumerable <FlightRecord> flightRecords = string.IsNullOrWhiteSpace(printOptions.AirlineName)
               ? flights[printOptions.Day].OrderBy(x => x.arrivalTime).ThenBy(x => x.airline)
               : flights[printOptions.Day].Where(x => x.airline == printOptions.AirlineName).OrderBy(x => x.arrivalTime).ThenBy(x => x.airline);

            if (!flightRecords.Any())
            {
                return(str);
            }
            str += "<tbody>";
            bool oddRow = false;

            foreach (FlightRecord fr in flightRecords)
            {
                str += $"<tr{(oddRow ? " class=\"oddRow\"" : string.Empty)}>\n";
                if (string.IsNullOrWhiteSpace(printOptions.AirlineName))
                {
                    str += $"<td><a href=\"/{fr.airline}?Day={printOptions.Day}\">{fr.airline}</a></td>\n";
                }
                str += $"<td class=\"None\"><a class=\"ajax-dialog\" href=\"/aircraftstats?aircraft={fr.aircraft}\" rel=\"#dialog\">{fr.aircraft}</a></td>\n";
                str += $"<td class=\"None\">{fr.originalGate}</td>\n";
                str += $"<td class=\"None\">{DateTime.MinValue.AddSeconds(fr.arrivalTime * 60):t}</td>\n";
                str += $"<td class=\"{(fr.actual_arrivalTime <= 0 ? AirportStatUtils.InfoLevels.None : fr.actual_arrivalTime > fr.arrivalTime ? AirportStatUtils.InfoLevels.Info : AirportStatUtils.InfoLevels.None)}\">{(fr.actual_arrivalTime > 0 ? DateTime.MinValue.AddSeconds(fr.actual_arrivalTime * 60).ToString("t") : string.Empty)}</td>\n";
                str += $"<td class=\"None\">{DateTime.MinValue.AddSeconds(fr.departureTime * 60):t}</td>\n";
                str += $"<td class=\"{(fr.actual_departureTime <= 0 ? AirportStatUtils.InfoLevels.None : fr.actual_departureTime - fr.departureTime > 15 ? AirportStatUtils.InfoLevels.Warning : fr.actual_departureTime - fr.departureTime > 0 ? AirportStatUtils.InfoLevels.Info : AirportStatUtils.InfoLevels.None)}\">{(fr.actual_departureTime > 0 ? DateTime.MinValue.AddSeconds(fr.actual_departureTime * 60).ToString("t") : string.Empty)}</td>\n";
                str += $"<td class=\"None\">{fr.nArriving:#}</td>\n";
                str += $"<td class=\"None\">{(fr.actual_arrivalTime > 0 ? new TimeSpan(0, 0, (int)fr.time_deplaning * 60).ToString("g") : string.Empty)}</td>\n";
                str += $"<td class=\"None\">{fr.nDeparting:#}</td>\n";
                str += $"<td class=\"None\">{fr.nCheckedIn:#}</td>\n";
                str += $"<td class=\"{(fr.actual_departureTime <=0 ? AirportStatUtils.InfoLevels.None : fr.nBoarded < fr.nDeparting ? AirportStatUtils.InfoLevels.Warning : AirportStatUtils.InfoLevels.None)}\">{fr.nBoarded:#}</td>\n";
                str += $"<td class=\"None\">{(fr.nBoarded > 0 ? new TimeSpan(0, 0, (int)fr.time_boarding * 60).ToString("g") : string.Empty)}</td>\n";
                str += $"<td class=\"None\">{fr.nArrivalBags:#}</td>\n";
                str += $"<td class=\"None\">{fr.nBagsUnloaded:#}</td>\n";
                str += $"<td class=\"None\">{(fr.nBagsUnloaded > 0 ? DateTime.MinValue.AddSeconds(fr.time_bag_unload * 60).ToString("t") : string.Empty)}</td>\n";
                str += $"<td class=\"None\">{fr.nDepartingBags:#}</td>\n";
                str += $"<td class=\"{(fr.actual_departureTime <= 0 ? AirportStatUtils.InfoLevels.None : fr.nBagsLoaded < fr.nDepartingBags ? AirportStatUtils.InfoLevels.Info : AirportStatUtils.InfoLevels.None)}\">{fr.nBagsLoaded:#}</td>\n";
                str += $"<td class=\"None\">{(fr.nBagsLoaded > 0 ? new TimeSpan(0, 0, (int)fr.time_bag_load * 60).ToString("g") : string.Empty)}</td>\n";
                str += $"<td class=\"None\">{fr.nFuelRequested / 1000:#,#}</td>\n";
                str += $"<td class=\"{(fr.actual_departureTime <=0 ? AirportStatUtils.InfoLevels.None : fr.nFuelRefueled < fr.nFuelRequested ? AirportStatUtils.InfoLevels.Info : AirportStatUtils.InfoLevels.None)}\">{fr.nFuelRefueled / 1000:#,#}</td>\n";
                string st = string.Empty;
                foreach (Flight.Status stat in Enum.GetValues(typeof(Flight.Status)))
                {
                    if (AirportStatUtils.HasStatus(fr.status, stat))
                    {
                        st += i18n.Get("TBFlash.AirportStats.flightstatus." + Enum.GetName(typeof(Flight.Status), stat)) + "<br/>";
                    }
                }
                str   += $"<td class=\"None\">{st}</td>\n";
                str   += $"<td class=\"{(fr.reason.ToString().Length > 5 ? AirportStatUtils.InfoLevels.Warning : AirportStatUtils.InfoLevels.None)}\">{i18n.Get("UI.strings.flightstatusreason.") + fr.reason.ToString()}</td>\n";
                str   += "</tr>\n";
                oddRow = !oddRow;
            }
            str += "</tbody>";
            return(str);
        }
Example #3
0
        internal override string ForTable(PrintOptions printOptions = null)
        {
            string str = $"<tr class=\"statGroup\"><th colspan=\"2\">{name}</th></tr>\n";

            str += nHires.ForTable(true);
            str += nFires.ForTable();
            return(str);
        }
        internal override string ForTable(PrintOptions printOptions = null)
        {
            string str = $"<tr class=\"statGroup\"><th colspan=\"2\">{name}</th></tr>\n";

            str += keyboardInteractions.ForTable(true);
            str += mouseClicks.ForTable();
            str += altMouseClicks.ForTable(true);
            return(str);
        }
Example #5
0
        internal string ForTable(PrintOptions printOptions, bool isAirlineName)
        {
            Stat value;

            if (isAirlineName)
            {
                return(stats.TryGetValue(printOptions.AirlineName, out value) ? $"\t<th><a href=\"{value.ForTable()}\">{value.ForTable()}</a></th>\n" : "\t<td></td>\n");
            }
            return(stats.TryGetValue(printOptions.AirlineName, out value) ? $"\t<td class=\"{value.GetInfoLevel()}\">{value.ForTable()}</td>\n" : "\t<td></td>\n");
        }
Example #6
0
        internal override string ForTable(PrintOptions printOptions = null)
        {
            string str = $"<tr class=\"statGroup\"><th colspan=\"2\"><a class=\"loadChart\" href=\"/chartdata?dataset=fuelstats{(!string.IsNullOrEmpty(printOptions.AirlineName) ? "&airline=" + printOptions.AirlineName : string.Empty)}\" rel=\"#dialog\">{name}</a></th></tr>\n";

            str += fuelRequested.ForTable(printOptions, true);
            str += fuelDelivered.ForTable(printOptions);
            str += fuelingFailures.ForTable(printOptions, true);
            str += planesRefueled.ForTable(printOptions);
            str += StatLoader.airportData.fuelStats.avgFuelPrice.ForTable(printOptions, true);
            return(str);
        }
Example #7
0
        internal override string ForChart(PrintOptions printOptions = null)
        {
            string str = string.Empty;

            for (int day = printOptions.FirstDay; day <= printOptions.LastDay; day++)
            {
                str += day > printOptions.FirstDay ? "," : string.Empty;
                str += $"\"{day}\":{{{fuelRequested.ForChart(day)},{fuelDelivered.ForChart(day)},{planesRefueled.ForChart(day)},{fuelingFailures.ForChart(day)},{StatLoader.airportData.fuelStats.avgFuelPrice.ForChart(day)}}}";
            }
            return(str);
        }
Example #8
0
        internal override string ForChart(PrintOptions printOptions = null)
        {
            string str = string.Empty;

            for (int day = printOptions.FirstDay; day <= printOptions.LastDay; day++)
            {
                str += day > printOptions.FirstDay ? "," : string.Empty;
                str += $"\"{day}\":{{{nArriving.ForChart(day)},{nConnecting.ForChart(day)},{nBoarded.ForChart(day)},{nMissed.ForChart(day)}}}";
            }
            return(str);
        }
Example #9
0
        internal override string ForTable(PrintOptions printOptions = null)
        {
            string str = $"<tr class=\"statGroup\"><th colspan=\"2\">{name}</th></tr>\n";

            str += tPaused.ForTable(true);
            str += tSpeed1.ForTable();
            str += tSpeed2.ForTable(true);
            str += tSpeed3.ForTable();
            str += tInactive.ForTable(true);
            return(str);
        }
Example #10
0
        internal override string ForChart(PrintOptions printOptions = null)
        {
            string str = string.Empty;

            for (int day = printOptions.FirstDay; day <= printOptions.LastDay; day++)
            {
                str += day > printOptions.FirstDay ? "," : string.Empty;
                str += $"\"{day}\":{{{bagsUnloaded.ForChart(day)},{bagsLoaded.ForChart(day)},{lostBags.ForChart(day)}}}";
            }
            return(str);
        }
        internal override string ForTable(PrintOptions printOptions = null)
        {
            string str = $"<tr class=\"statGroup\"><th colspan=\"2\"><a class=\"loadChart\" href=\"/chartdata?dataset=profits{(!string.IsNullOrEmpty(printOptions.AirlineName) ? "&airline=" + printOptions.AirlineName : string.Empty)}\" rel=\"#dialog\">{name}</a></th></tr>\n";

            //str += GrossProfit.ForTable(printOptions, true);
            //str += GrossMargin.ForTable(printOptions);
            //str += OperatingProfit.ForTable(printOptions, true);
            //str += OperatingMargin.ForTable(printOptions);
            str += NetProfit.ForTable(printOptions, true);
            str += NetMargin.ForTable(printOptions);
            return(str);
        }
        internal override string ForChart(PrintOptions printOptions = null)
        {
            string str = string.Empty;

            for (int day = printOptions.FirstDay; day <= printOptions.LastDay; day++)
            {
                str += day > printOptions.FirstDay ? "," : string.Empty;
                // str += $"\"{day}\":{{{GrossProfit.ForChart(day)},{OperatingProfit.ForChart(day)},{NetProfit.ForChart(day)},{GrossMargin.ForChart(day)},{OperatingMargin.ForChart(day)},{NetMargin.ForChart(day)}}}";
                str += $"\"{day}\":{{{NetProfit.ForChart(day)},{NetMargin.ForChart(day)}}}";
            }
            return(str);
        }
        internal override string ForTable(PrintOptions printOptions = null)
        {
            string str    = $"<tr class=\"statGroup\"><th colspan=\"2\"><a class=\"loadChart\" href=\"/chartdata?dataset=revexp{(!string.IsNullOrEmpty(printOptions.AirlineName) ? "&airline=" + printOptions.AirlineName : string.Empty)}\" rel=\"#dialog\">{name}</a></th></tr>\n";
            bool   oddRow = true;

            foreach (DailyStats <MoneyStat> statGroup in StatGroups.Values.Where(x => x.HasData))
            {
                str   += statGroup.ForTable(printOptions, oddRow);
                oddRow = !oddRow;
            }
            return(str);
        }
Example #14
0
        internal override string ForChart(PrintOptions printOptions = null)
        {
            string str      = string.Empty;
            int    startDay = GameTimer.Day + numDays - 1;

            for (int i = startDay; i >= GameTimer.Day; i--)
            {
                LoadDictionary(i);
                str += i < startDay ? "," : string.Empty;
                str += $"\"{i}\":{{\"low\":\"{minValues[i].Value}\",\"high\":\"{maxValues[i].Value}\"}}";
            }
            return(str);
        }
Example #15
0
        internal override string ForTable(PrintOptions printOptions = null)
        {
            string str = $"<tr class=\"statGroup\"><th colspan=\"2\"><a class=\"loadChart\" href=\"/chartdata?dataset=luggagestats{(!string.IsNullOrEmpty(printOptions.AirlineName) ? "&airline=" + printOptions.AirlineName : string.Empty)}\" rel=\"#dialog\">{name}</a></th></tr>\n";

            str += arrivingBags.ForTable(printOptions, true);
            str += bagsUnloaded.ForTable(printOptions);
            str += departingBags.ForTable(printOptions, true);
            str += bagsLoaded.ForTable(printOptions);
            str += lostBags.ForTable(printOptions, true);
            str += timeLoadingBags.ForTable(printOptions);
            //str += timeUnloadingBags.ForTable(printOptions);
            return(str);
        }
Example #16
0
        static internal string GetChartData(string dataset, string airlineName)
        {
            AirportStatUtils.AirportStatsLogger(Log.FromPool("").WithCodepoint());
            StatLoader.UpdateAirlineData();
            StatGroup    statGroup    = GetStatGroup(dataset, airlineName);
            PrintOptions printOptions = new PrintOptions()
            {
                FirstDay = StatLoader.FirstDay, LastDay = StatLoader.LastDay
            };
            string str = $"{{\n\t{statGroup.GetChartData().GetChartOptions()},\n\t{GetSeriesData(statGroup)},\n\t\"chartData\":[{{{statGroup.ForChart(printOptions)}}}]}}";

            AirportStatUtils.AirportStatsLogger(Log.FromPool(str).WithCodepoint());
            return(str);
        }
        internal string ForTable(PrintOptions printOptions = null, bool oddRow = false)
        {
            string str = $"<tr{(oddRow ? " class=\"oddRow\"" : string.Empty)}><td>{statName}</td>\n";

            if (printOptions.IncludeLifetime)
            {
                str += ForTable(0);
            }
            for (int i = printOptions.LastDay; i >= printOptions.FirstDay; i--)
            {
                str += ForTable(i);
            }
            str += "</tr>";
            return(str);
        }
Example #18
0
        internal string ForTable(PrintOptions printOptions = null)
        {
            string str = string.Empty;

            str += flightStats.ForTable(printOptions);
            str += passengerStats.ForTable(printOptions);
            str += fuelStats.ForTable(printOptions);
            str += luggageStats.ForTable(printOptions);
            str += revAndExpStats.ForTable(printOptions);
            str += profitStats.ForTable(printOptions);
            str += staffStats.ForTable(printOptions);
            str += timeStats.ForTable(printOptions);
            str += interactions.ForTable(printOptions);
            return(str);
        }
Example #19
0
        internal string ForTable(PrintOptions printOptions = null)
        {
            AirportStatUtils.AirportStatsLogger(Log.FromPool("").WithCodepoint());
            IEnumerable <string>        list        = printOptions.ActiveOnly ? FindActiveAirlines(includeInSatisfaction.stats) : includeInSatisfaction.stats.Keys;
            IOrderedEnumerable <string> airlineList = list.OrderBy(x => x);
            string str = string.Empty;

            str += "<thead>";
            str += airlineName.ForTable(airlineList, false, true);
            str += "</thead><tbody>";
            str += includeInSatisfaction.ForTable(airlineList, true);
            str += interest.ForTable(airlineList);
            str += communication.ForTable(airlineList, true);
            str += fuelSatisfaction.ForTable(airlineList);
            str += paxSatisfaction.ForTable(airlineList, true);
            str += fees.ForTable(airlineList);
            str += reliability.ForTable(airlineList, true);
            str += trust.ForTable(airlineList);
            str += facilityQuality.ForTable(airlineList, true);
            str += nAcceptedOffers.ForTable(airlineList);
            str += baseRefuelPercentage.ForTable(airlineList, true);
            str += firstClassPercentage.ForTable(airlineList);
            str += newFlightBonus.ForTable(airlineList, true);
            str += peakFlightCount.ForTable(airlineList);
            str += nReps.ForTable(airlineList, true);
            str += hasDeal.ForTable(airlineList);

            str += runwayFees.ForTable(airlineList, true);
            str += terminalFees.ForTable(airlineList);
            str += dailyFees.ForTable(airlineList, true);
            str += fuelSatisfactionNegotiated.ForTable(airlineList);
            str += reliabilityNegotiated.ForTable(airlineList, true);
            str += offices.ForTable(airlineList);
            str += conferenceRoom.ForTable(airlineList, true);
            str += stores.ForTable(airlineList);
            str += storeShare.ForTable(airlineList, true);
            str += cafes.ForTable(airlineList);
            str += cafeShare.ForTable(airlineList, true);
            str += firstClassLounges.ForTable(airlineList);
            str += flightCrewLounges.ForTable(airlineList, true);
            str += smallGates.ForTable(airlineList);
            str += largeGates.ForTable(airlineList, true);
            str += XLGates.ForTable(airlineList);
            str += paxPercent.ForTable(airlineList, true);
            str += penalty.ForTable(airlineList);
            str += "</tbody>";
            return(str);
        }
Example #20
0
        internal string ForTable(IOrderedEnumerable <string> airlineList, bool oddRow = false, bool isAirlineName = false)
        {
            string str = $"<tr{(oddRow ? " class=\"oddRow\"" : string.Empty)}>\n";

            str += $"\t<td>{statName}</td>\n";
            foreach (string airline in airlineList)
            {
                PrintOptions printOptions = new PrintOptions
                {
                    AirlineName = airline
                };
                str += ForTable(printOptions, isAirlineName);
            }
            str += "</tr>\n";
            return(str);
        }
        internal override string ForChart(PrintOptions printOptions = null)
        {
            string str = string.Empty;

            foreach (DailyStats <MoneyStat> statGroup in StatGroups.Values)
            {
                if (statGroup.HasData && statGroup.SeriesData != null)
                {
                    if (str.Length > 0)
                    {
                        str += ",";
                    }
                    str += statGroup.ForChart(printOptions.Day);
                }
            }
            return(str);
        }
Example #22
0
        internal override string ForTable(PrintOptions printOptions = null)
        {
            string str = $"<tr class=\"statGroup\"><th colspan=\"2\"><a class=\"loadChart\" href=\"/chartdata?dataset=paxstats{(!string.IsNullOrEmpty(printOptions.AirlineName) ? "&airline=" + printOptions.AirlineName : string.Empty)}\" rel=\"#dialog\">{name}</a></th></tr>\n";

            str += nArriving.ForTable(printOptions, true);
            str += arrPaxPerFlt.ForTable(printOptions);
            str += nSchedDep.ForTable(printOptions, true);
            str += departPaxPerFlt.ForTable(printOptions);
            str += nCheckedIn.ForTable(printOptions, true);
            str += nConnecting.ForTable(printOptions);
            str += nBoarded.ForTable(printOptions, true);
            str += nMissed.ForTable(printOptions);
            str += boardedPerFlt.ForTable(printOptions, true);
            str += timeDeplaning.ForTable(printOptions);
            str += timeBoarding.ForTable(printOptions, true);
            str += avgBoardTime.ForTable(printOptions);
            return(str);
        }
Example #23
0
        internal override string ForTable(PrintOptions printOptions = null)
        {
            AirportStatUtils.AirportStatsLogger(Log.FromPool("").WithCodepoint());
            string str = string.Empty;
            int    day = GameTimer.Day;

            for (int j = day; j < (day + numDays); j++)
            {
                LoadDictionary(j);
            }

            str += $"<tr><td></td><th colspan=\"2\">{i18n.Get("TBFlash.AirportStats.json.lowestCost")}</th><th colspan=\"2\">{i18n.Get("TBFlash.AirportStats.json.highestCost")}</th></tr>\n";
            str += $"<tr><td></td><th style=\"width: 70px;\">{i18n.Get("TBFlash.AirportStats.json.cost")}</th><th style=\"width: 70px;\">{i18n.Get("TBFlash.AirportStats.json.time")}</th><th style=\"width: 70px;\">{i18n.Get("TBFlash.AirportStats.json.cost")}</th><th style=\"width: 70px;\">{i18n.Get("TBFlash.AirportStats.json.time")}</th><th><a class=\"loadChart\" href=\"/chartdata?dataset=fuelFutures\" rel=\"#dialog\">{i18n.Get("TBFlash.AirportStats.json.chart")}</a></th></tr>\n";

            float lowvalue  = CalcLowHigh(true);
            float highvalue = CalcLowHigh(false);

            for (int i = day; i < (day + numDays); i++)
            {
                str += GetFuelForTable(i, lowvalue, highvalue);
            }
            return(str);
        }
        internal string ForTable(PrintOptions printOptions = null)
        {
            AirportStatUtils.AirportStatsLogger(Log.FromPool($"printOptions: AirlineName: {printOptions.AirlineName}; lifetime: {printOptions.IncludeLifetime}; first: {printOptions.FirstDay}; last: {printOptions.LastDay}").WithCodepoint());

            return(airlineDailyData.TryGetValue(printOptions.AirlineName, out AirlineDailyData airlineData) ? airlineData.ForTable(printOptions) : string.Empty);
        }
Example #25
0
 internal override string ForChart(PrintOptions printOptions = null)
 {
     return(string.Empty);
 }
Example #26
0
 internal string ForChart(PrintOptions printOptions = null)
 {
     return(stats.TryGetValue(printOptions.AirlineName, out Stat value) ? value.ForChart() : string.Empty);
 }
 internal string ForTable(PrintOptions printOptions = null)
 {
     AirportStatUtils.AirportStatsLogger(Log.FromPool("").WithCodepoint());
     return(ForTableHeader(printOptions) + ForTableFlightRecords(printOptions));
 }