protected internal override void OnMessageReceived(ConversationMessage message)
 {
     if (message is FileDataMessage || message is SendItemsMessage)
     {
         //TODO 这个应该交给一个线程去做。
         receiver.QueueMessage(message);
     }
     else if (message is ConversationRecoverRequestMessage)
     {
         //对方发一个请求,问我正在接收哪些文件。如果我这一边已经异常退出了,那么其实我是没什么信息可以回给对方。
         RecoverSendItemsResponse resp = new RecoverSendItemsResponse();
         resp.SetItems(receiver.TransferringItem);
         PostMessage(resp);
     }
     else if (message is CancelItemMessage)
     {
         CancelItemMessage msg = message as CancelItemMessage;
         msg.Items.ForEach((o) =>
         {
             var cutItem = Items.FirstOrDefault(d => d.ID == o.ID);
             if (cutItem != null)
             {
                 cutItem.TransferState = TransferState.Canceled;
                 if (cutItem.Type == ItemType.Directory)
                 {
                     var dir = cutItem as DirItem;
                     if (dir != null)
                     {
                         receiver.ProcessReceiveListChildItems(dir);
                     }
                 }
             }
         });
     }
 }
Example #2
0
 protected internal override void OnMessageReceived(ConversationMessage message)
 {
     if (message is FileDataMessage || message is SendItemsMessage)
     {
         receiver.QueueMessage(message);
     }
 }