public void HandleRegisterIDResultServerMessage(RegisterIdResultServerMessage registerIdResultServerMessage, IPeerMessageTransmitter clientAppState)
 {
     Dispatcher.Invoke(() =>
     {
         _PeerMessageTransmitter = clientAppState;
         if (registerIdResultServerMessage.Result)
         {
             MessageBox.Show("Registration successful", "Success", MessageBoxButton.OK, MessageBoxImage.Information);
         }
         else
         {
             RequestRegistrationIdFromUser("Please try another unique Id");
         }
     });
 }
 public void HandleSignInResultServerMessage(SignInResultServerMessage signInResultServerMessage, IPeerMessageTransmitter clientAppState)
 {
     Dispatcher.Invoke(() =>
     {
         _PeerMessageTransmitter = clientAppState;
         if (signInResultServerMessage.Result)
         {
             MessageBox.Show("Login successful", "Success", MessageBoxButton.OK, MessageBoxImage.Information);
         }
         else
         {
             RequestRegistrationIdFromUser("Invalid credentials entered. Please try different credentials");
         }
     });
 }
        private static void handleServerMessage(ServerMessage serverMessage, IClientUINotifier clientUINotifier, ClientAppState clientAppState)
        {
            switch (serverMessage.ServerMessageType)
            {
            case ServerMessageType.DisplayTextToConsole:
                clientUINotifier.HandleDisplayTextServerMessage(serverMessage as DisplayTextServerMessage);
                break;

            case ServerMessageType.RegisterIdResult:
                try
                {
                    IPeerMessageTransmitter peerMessageTransmitter = (serverMessage as RegisterIdResultServerMessage)?.Result ?? false ? clientAppState : null;
                    clientUINotifier.HandleRegisterIDResultServerMessage(serverMessage as RegisterIdResultServerMessage, peerMessageTransmitter);
                }
                finally
                {
                    _isAuthenticationInProcess = false;
                }
                break;

            case ServerMessageType.SignInResult:
                try
                {
                    IPeerMessageTransmitter peerMessageTransmitter = (serverMessage as SignInResultServerMessage)?.Result ?? false ? clientAppState : null;
                    clientUINotifier.HandleSignInResultServerMessage(serverMessage as SignInResultServerMessage, peerMessageTransmitter);
                }
                finally
                {
                    _isAuthenticationInProcess = false;
                }
                break;

            case ServerMessageType.ClientAvailabilityNotification:
                clientUINotifier.HandleClientAvailabilityNotificationServerMessage(serverMessage as ClientAvailabilityNotificationServerMessage);
                break;

            case ServerMessageType.TransmitToPeerResult:
                clientUINotifier.HandleTransmitToPeerResultServerMessage(serverMessage as TransmitToPeerResultServerMessage);
                break;

            case ServerMessageType.TransmitToPeer:
                clientUINotifier.HandleTransmitToPeerServerMessage(serverMessage as TransmitToPeerServerMessage);
                break;

            default:
                break;
            }
        }