public EliteMedalsViewModel(
        int season,
        Dictionary <string, Player> playersDict,
        EliteMedals eliteMedals,
        SeasonResults seasonResults)
    {
        this.season = season;
        List <PlayerInfo> players = new();

        foreach (string playerId in playersDict.Keys)
        {
            Player player = playersDict[playerId];
            EliteMedals.EliteMedal existingMedal = eliteMedals.GetExistingMedal(playerId);
            HashSet <Tuple <SeasonResults.PlayerResult, bool> > topThreeResults = seasonResults.GetTopThreeResults(playerId, existingMedal.Value);
            FormattedMedal formattedExistingMedal = eliteMedals.GetFormattedExistingMedal(playerId);
            FormattedMedal nextMedal  = eliteMedals.GetNextMedal(playerId);
            PlayerInfo     playerInfo = new(
                playerId,
                player.Name,
                player.PersonalNumber,
                topThreeResults,
                existingMedal.Value,
                formattedExistingMedal,
                nextMedal);
            players.Add(playerInfo);
        }

        Players = players.ToArray();
    }
 public PlayerMedalInfo(
     string playerName,
     int playerPersonalNumber,
     FormattedMedal formattedExistingMedal,
     FormattedMedal formattedNextMedal,
     HashSet <Tuple <SeasonResults.PlayerResult, bool> > playerTopThreeResults)
 {
     PlayerName             = playerName;
     PlayerPersonalNumber   = playerPersonalNumber;
     FormattedExistingMedal = formattedExistingMedal;
     FormattedNextMedal     = formattedNextMedal;
     PlayerTopThreeResults  = playerTopThreeResults;
 }
 public PlayerInfo(
     string playerId,
     string name,
     int personalNumber,
     HashSet <Tuple <SeasonResults.PlayerResult, bool> > topThreeResults,
     EliteMedals.EliteMedal.EliteMedalValue existingMedal,
     FormattedMedal formattedExistingMedal,
     FormattedMedal formattedNextMedal)
 {
     PlayerId                    = playerId;
     Name                        = name;
     PersonalNumber              = personalNumber;
     TopThreeResults             = topThreeResults;
     ExistingMedal               = existingMedal;
     this.formattedExistingMedal = formattedExistingMedal;
     this.formattedNextMedal     = formattedNextMedal;
 }