public GameManager(IFoosNetworkService networkService, IFoosAlerterProvider alerter, ObservableCollection<FoosPlayerListItem> playerList, FoosPlayerListItem self) { m_NetworkService = networkService; m_Alerter = alerter; m_PlayerList = playerList; m_Self = self; m_NetworkService.ChallengeReceived += NetworkServiceOnChallengeReceived; m_NetworkService.ChallengeResponse += NetworkServiceOnChallengeResponse; m_NetworkService.CancelGameReceived += NetworkServiceOnCancelGameReceived; }
public NotifyWindowViewModel() { // Load settings var endpoint = ConfigurationManager.AppSettings["networkServiceEndpoint"]; var savedPriorities = Settings.Default.Priorities ?? new StringCollection(); m_DesiredPlayerOrder = savedPriorities.Cast<string>().ToList(); UseMinimalAlerts = Settings.Default.UseMinimalAlerts; m_PlayerProcessors = new List<IPlayerTransformation>(); m_PlayerProcessors.Add(new DefaultNameTransformation()); var localEmail = (Environment.UserName + "@" + Environment.UserDomainName + ".com").ToLowerInvariant(); m_Self = new FoosPlayerListItem(localEmail, Status.Available, 1) { DisplayName = "You" }; try { m_Communicator = new CommunicatorIntegration.CommunicatorIntegration(); m_PlayerProcessors.Add(new CommunicatorPlayerFilter(m_Communicator)); m_Communicator.StatusChanged += CommunicatorOnStatusChanged; localEmail = m_Communicator.GetLocalUserEmail(); } catch { // If Communicator isn't working, process player names as best we can from email address m_PlayerProcessors.Add(new StatusToUnknownTransformation()); m_Communicator = null; var samurai = new Thread(HonourableSamurai); samurai.Start(); } // nasty hack to support WPF designer if (DesignerProperties.GetIsInDesignMode(new DependencyObject())) { m_NetworkService = new TestFoosNetworkService(); } else { m_NetworkService = new FoosNetworkService(endpoint, localEmail, TimeSpan.FromMinutes(1)); } m_FoosPlayers.CollectionChanged += FoosPlayersOnCollectionChanged; m_NetworkService.PlayersDiscovered += NetworkServiceOnPlayersDiscovered; m_NetworkService.GameStarting += NetworkServiceOnGameStarting; m_NetworkService.TableStatusChanged += NetworkServiceOnTableStatusChanged; GameManager = new GameManager(m_NetworkService, this, m_FoosPlayers, m_Self); GameManager.PropertyChanged += GameManagerOnPropertyChanged; GameManager.OnError += GameManagerOnOnError; }