Пример #1
0
 private void HandleMessage(IConverser converser, Message mesg)
 {
     if (EndPoints.ContainsKey(converser.ConversationId))
     {
         var env = new Envelope(mesg, EndPoints[converser.ConversationId]);
         Communicator.SendEnvelope(env);
     }
 }
Пример #2
0
        public void AddConversation(IConverser converser, IPEndPoint endPoint)
        {
            Log.DebugFormat("Adding conversation with endpoint {0}:{1} and id {2}", endPoint.Address, endPoint.Port, converser.ConversationId);
            converser.OnMessageToSend    += HandleMessage;
            converser.OnConversationOver += HandleConversationOver;

            Conversers.Add(converser.ConversationId, converser);
            EndPoints.Add(converser.ConversationId, endPoint);

            converser.Start();
        }
Пример #3
0
        private void HandleConversationOver(IConverser converser)
        {
            Log.DebugFormat("Conversation with id {0} signaled that it is finished; stopping conversation", converser.ConversationId);
            if (Conversers.ContainsKey(converser.ConversationId))
            {
                Conversers[converser.ConversationId].Stop();

                Conversers.Remove(converser.ConversationId);
                EndPoints.Remove(converser.ConversationId);
                DeadConversations.Add(converser.ConversationId);
            }
        }
Пример #4
0
 public QuestionScript(IConverser converser)
 {
     _converser = converser;
 }