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();
        }
Esempio n. 2
0
 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
        }
Esempio n. 4
0
        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 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
        }
Esempio n. 8
0
 public void InjectClientCommunicator(IClientCommunicator communicator)
 {
     this.communicator = communicator;
 }