public ClientViewModel(IClientCommunicator clientCommunicator) { if (clientCommunicator == null) { throw new ArgumentNullException("clientCommunicator"); } this.ClientCommunicator = clientCommunicator; Func <DispatchedHandler, Task> callOnUiThread = async(handler) => await CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, handler); this.ClientCommunicator.GameAvailable += async(s, e) => await callOnUiThread(() => this.CanJoin = true); this.ClientCommunicator.NewQuestionAvailable += async(s, e) => await callOnUiThread(() => this.CurrentQuestion = e.Question); this.ClientCommunicator.PlayerJoined += async(s, e) => await callOnUiThread(() => { this.IsJoined = e.IsJoined; this.ErrorMessageVisibility = e.IsJoined ? Visibility.Collapsed : Visibility.Visible; }); this.ClientCommunicator.InitializeAsync(); }
public Client(IClientCommunicator communicator, ILogger logger, int sleepTimer, IClientDOManager dOManager) { this.communicator = communicator; this.logger = logger; this.sleepTimer = sleepTimer; this.dOManager = dOManager; dOManager.InjectClientCommunicator(communicator); // inject manually }
static ViewModelLocator() { #if LOCALTESTMODEON hostCommunicator = new MockHostCommunicator(); var mockHostCommunicator = hostCommunicator as MockHostCommunicator; clientCommunicator = new MockClientCommunicator { Host = mockHostCommunicator }; clientCommunicator2 = new MockClientCommunicator { Host = mockHostCommunicator }; mockHostCommunicator.Client1 = clientCommunicator as MockClientCommunicator; mockHostCommunicator.Client2 = clientCommunicator2 as MockClientCommunicator; #else clientCommunicator = new ClientCommunicator(); hostCommunicator = new HostCommunicator(); #endif }
public ClientViewModel(IClientCommunicator clientCommunicator) { if (clientCommunicator == null) throw new ArgumentNullException("clientCommunicator"); this.ClientCommunicator = clientCommunicator; Func<DispatchedHandler, Task> callOnUiThread = async (handler) => await CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, handler); this.ClientCommunicator.GameAvailable += async (s, e) => await callOnUiThread(() => this.CanJoin = true); this.ClientCommunicator.NewQuestionAvailable += async (s, e) => await callOnUiThread(() => this.CurrentQuestion = e.Question); this.ClientCommunicator.HostJoinStatusMessageReceived += async (s, e) => await callOnUiThread(() => { this.IsJoined = e.IsJoined; this.ErrorMessageVisibility = e.IsJoined ? Visibility.Collapsed : Visibility.Visible; }); this.ClientCommunicator.InitializeAsync(); }
public ViewModelLocator() { #if LOCALTESTMODEON hostCommunicator = new MockHostCommunicator(); var mockHostCommunicator = hostCommunicator as MockHostCommunicator; clientCommunicator = new MockClientCommunicator { Host = mockHostCommunicator }; clientCommunicator2 = new MockClientCommunicator { Host = mockHostCommunicator }; mockHostCommunicator.Client1 = clientCommunicator as MockClientCommunicator; mockHostCommunicator.Client2 = clientCommunicator2 as MockClientCommunicator; #else var config = new P2PSession.P2PSessionConfigurationData { multicastIP = "239.7.7.7", multicastPort = "60608", tcpPort = "4400" }; clientCommunicator = new ClientCommunicator(new P2PSessionClient(config)); hostCommunicator = new HostCommunicator(new P2PSessionHost(config)); #endif }
public void InjectClientCommunicator(IClientCommunicator communicator) { this.communicator = communicator; }