21 _personService = personService;
25 public bool AnalyticsAvailable => _personService.GetAllPersonStarts(onlyValidStarts:
true).Count() > 0;
31 .GroupBy(s => s.CompetitionObj.Distance)
32 .ToDictionary(g => g.Key, g => g.Count())
33 .OrderByDescending(d => d.Value)
40 .OrderByDescending(d => d.Value)
49 string moduleStartDistancesString =
string.Join(Environment.NewLine,
53 ushort distance = kv.Key;
54 string distanceString = $
"{distance} m";
56 double percentage = PercentageStartsPerDistance.TryGetValue(distance, out var p) ? p : 0;
57 return $
"{distanceString,5}: {count,2}x | {new string('#', count).PadRight(maxNumStarts)} {percentage.ToString("N1
")}%";
60 foreach (
string placeholder
in Placeholders.Placeholders_AnalyticsStartDistances) { textPlaceholder.Add(placeholder, moduleStartDistancesString); }
61 return textPlaceholder;
67 Placeholders.PLACEHOLDER_KEY_ANALYTICS_START_DISTANCES
Class to hold text placeholders and their values.