예제 #1
0
 /// <summary>
 /// When state of a communicator changes, this method handles event.
 /// It is used to remove a communicator from list when it is closed.
 /// </summary>
 /// <param name="sender">Sender (ICommunicationManager)</param>
 /// <param name="e">Event arguments</param>
 private void Communicator_StateChanged(object sender, CommunicatorStateChangedEventArgs e)
 {
     switch (e.Communicator.State)
     {
     case CommunicationStates.Closed:
         RemoveFromCommunicators(e.Communicator.ComminicatorId);
         break;
     }
 }
예제 #2
0
        /// <summary>
        /// When a communicator's state is changed, this method handles event..
        /// </summary>
        /// <param name="sender">Creator of event</param>
        /// <param name="e">Event arguments</param>
        private void Communicator_StateChanged(object sender, CommunicatorStateChangedEventArgs e)
        {
            //Process only CommunicationStates.Closed state
            if (e.Communicator.State != CommunicationStates.Closed)
            {
                return;
            }

            lock (_communicators)
            {
                var connectedCommunicator = FindCommunicator(e.Communicator);
                if (connectedCommunicator == null)
                {
                    return;
                }

                _communicators.Remove(connectedCommunicator);

                //Send Reject message for processing message, because communicator is disconnected
                if (connectedCommunicator.ProcessingMessage != null)
                {
                    OnResponseReceived(
                        null,
                        new NGRIDOperationResultMessage
                    {
                        RepliedMessageId = connectedCommunicator.ProcessingMessage.MessageId,
                        Success          = false,
                        ResultText       = "Communicator of remote application disconnected from server."
                    });
                }

                Logger.Info("A connection closed with remote application: " + Name);
            }

            OnCommunicatorDisconnected(e.Communicator);
        }