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); }
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); }
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"); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
internal override string ForChart(PrintOptions printOptions = null) { return(string.Empty); }
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)); }