public MatchResultViewModel(Mediator mediator, TeamAdjustViewModel teamAdjust, Repo repo)
        {
            this.ts     = teamAdjust;
            this.match  = ts.match;
            matchResult = new MatchResult(this.match);
            matchOutput = matchResult.PrintMatchEvents();

            this.repository = repo;

            this.mediator = mediator;

            mediator = new Mediator();

            Save      = new ViewModelCommand(SelectSave, CanSelectSave);
            Load      = new ViewModelCommand(SelectLoad, CanSelectLoad);
            StartOver = new ViewModelCommand(SelectNewGame, CanSelectNewGame);

            Page = new ObservableCollection <MatchResult>();
            Page.Add((MatchResult)matchResult);

            TeamStatsOne = $"{match.TeamOne.Name} Stats: ";
            TeamStatsTwo = $"{match.TeamTwo.Name} Stats: ";

            for (int i = 0; i < match.TeamOne.StatList.Count; i++) // both teams have same stat list size
            {
                TeamStatsOne += match.TeamOne.StatList[i].AboutMessage();
                TeamStatsTwo += match.TeamTwo.StatList[i].AboutMessage();
            }
        }
        public TeamAdjustViewModel(Mediator mediator, IMatch match, Repo repo)
        {
            this.match = match;

            PlayerListOne = new ObservableCollection <string>();
            PlayerListTwo = new ObservableCollection <string>();

            Save = new ViewModelCommand(SelectSave, CanSelectSave);
            Load = new ViewModelCommand(SelectLoad, CanSelectLoad);

            Page = new ObservableCollection <Match>();
            Page.Add((Match)match);

            foreach (IPlayer p in match.TeamOne.PlayerList)
            {
                PlayerListOne.Add(p.Name);
            }

            foreach (IPlayer p in match.TeamTwo.PlayerList)
            {
                PlayerListTwo.Add(p.Name);
            }

            this.mediator = mediator;

            this.repository = repo;

            RemovePlayerTeamOne = new ViewModelCommand(RemovePlayerOne, CanRemovePlayer);
            RemovePlayerTeamTwo = new ViewModelCommand(RemovePlayerTwo, CanRemovePlayer);

            ScheduleMatch = new ViewModelCommand(SelectSchedule, CanSelectSchedule);
        }