Exemplo n.º 1
0
        private void SetActiveClient(Client client)
        {
            try
            {
                ClientLock.AcquireWriterLock(15 * 1000);
                Client = client;
            }
            catch (ApplicationException exception)
            {
                C.WriteLine("============================================================================");
                C.WriteLine("DeadLock? ConsoleUiMediator::SetActiveClient(Client) AcquireWriterLock");
                C.WriteLine("============================================================================");
                return;
            }
            finally
            {
                ClientLock.ReleaseWriterLock();
            }

            if (CurrentView.GetType() == typeof(IClientView))
            {
                ((IClientView)CurrentView).SetActiveClient(Client);
            }

            // MainView also takes care of client interaction
            if (CurrentView == MainView)
            {
                MainView.SetActiveClient(Client);
            }
        }
Exemplo n.º 2
0
        public void OnClientDisconnected(Client client)
        {
            try
            {
                ClientLock.AcquireWriterLock(15 * 1000);

                if (Client == client)
                {
                    Client = null;
                    if (CurrentView.GetType() == typeof(ClientView))
                    {
                        ((ClientView)CurrentView).SetActiveClient(null);
                        CurrentView = MainView;
                        C.WriteLine("Current interacting user has disconnected");
                        CurrentView.PrintBanner();
                    }
                }
            }
            catch (ApplicationException exception)
            {
                C.WriteLine("============================================================================");
                C.WriteLine("DeadLock? ConsoleUiMediator::OnClientDisconnected(Client) AcquireReaderLock");
                C.WriteLine("============================================================================");
            }
            finally
            {
                ClientLock.ReleaseWriterLock();
            }
        }
Exemplo n.º 3
0
 private void SetActiveClient(int clientId)
 {
     try
     {
         ClientLock.AcquireWriterLock(15 * 1000);
         Client = Application.GetClient(clientId);
         SetActiveClient(Client);
     }
     catch (ApplicationException exception)
     {
         C.WriteLine("============================================================================");
         C.WriteLine("DeadLock? ConsoleUiMediator::SetActiveClient(int) AcquireWriterLock");
         C.WriteLine("============================================================================");
     }
     finally
     {
         ClientLock.ReleaseWriterLock();
     }
 }