public ServerDisconnecter(ILogger logger, Socket socket, UserRepository userRepo, MatchMaker matchMaker)
 {
     _logger     = logger;
     _socket     = socket;
     _userRepo   = userRepo;
     _matchMaker = matchMaker;
 }
        public ServerNetworkStateContainer(BspSender sender, IBspDisconnecter disconnecter,
                                           GameTypeRepository gameTypeRepo, UserRepository userRepo, MatchMaker matchMaker)
        {
            var state = new BspServerState();

            NotConnected    = new NotConnected(state, sender, gameTypeRepo, userRepo);
            PendingLogOn    = new PendingLogOn();
            WaitingForBoard = new WaitingForBoard(state, sender, gameTypeRepo, matchMaker);
            PendingBoard    = new PendingBoard();
            WaitingForGame  = new WaitingForGame(state, sender, disconnecter, userRepo);
            FoundGame       = new FoundGame(state, sender, disconnecter, userRepo);
            InitialGame     = new InitialGame();
            MyTurn          = new MyTurn(state, sender, disconnecter, userRepo);
            TheirTurn       = new TheirTurn();
            Waiting         = new Waiting();
        }