public void Init()
 {
     fakeFootballRepo = new FootballRepository();
     fakeMatchRepo = new FakeMatchRepository();
     matchViewModel = new MatchViewModel(fakeFootballRepo);
     playerMatchViewModel = new PlayerMatchViewModel(fakeFootballRepo);
     matchButtonViewModel = new MatchButtonViewModel(fakeFootballRepo, matchViewModel, new FakeDialogSelectionService());
     fakeMailerService = new MailerService(playerMatchViewModel, fakeFootballRepo);
     buttonViewModel = new ButtonViewModel(fakeFootballRepo, playerMatchViewModel, new FakeMatchValidatorService(true), fakeMailerService);
     matchViewModel.PlayerMatchViewModel = playerMatchViewModel;
     matchViewModel.ButtonViewModel = buttonViewModel;
 }
 public MatchViewModel()
 {
     _footballRepository = new FootballRepository(new FootballEntities());
     _playerMatchViewModel = new PlayerMatchViewModel(_footballRepository);
     _dialogService = new DialogService();
     _playerValidatorService = new PlayerValidatorService(_dialogService);
     _matchValidatorService = new MatchValidatorService(_playerMatchViewModel, _dialogService);
     _mailerService = new MailerService(_playerMatchViewModel, _playerMatchViewModel.PlayerMatches, _teams);
     ButtonViewModel = new ButtonViewModel(_footballRepository, _playerMatchViewModel, _matchValidatorService, _mailerService);
     PlayerViewModel = new PlayerViewModel(_footballRepository, _playerMatchViewModel, _playerValidatorService);
     MatchButtonViewModel = new MatchButtonViewModel(_footballRepository, this, new DialogSelectionService());
     InitialiseMatchesAndTeams();
     _selectionAlgorithms = InitialiseSelectionAlgorithms();
     _selectedAlgorithm = _selectionAlgorithms.First();
     ButtonViewModel.SelectedAlgorithm = _selectedAlgorithm;
 }