public void ProcessNewMessage(Message message) { logger.info("process new message: {0}", message); MessageModelDelivered messageModel = new MessageModelDelivered(message); Peer targetPeer = messageModel.Peer; DialogModel targetDialogModel = null; foreach (DialogModel dialogModel in dialogs) { if (!dialogModel.IsEncrypted && TLStuff.PeerEquals(dialogModel.Peer, targetPeer)) { targetDialogModel = dialogModel; break; } } if (targetDialogModel == null) { logger.info("target dialog not found, creating new..."); targetDialogModel = new DialogModelPlain(messageModel, session); dialogs.Insert(0, targetDialogModel); } else { logger.info("target dialog found, rearrange..."); UpDialog(targetDialogModel); } targetDialogModel.ProcessNewMessage(messageModel); if (targetDialogModel == TelegramSession.Instance.Dialogs.OpenedDialog) { targetDialogModel.OpenedRead(); } }
public void ProcessNewMessage(Message message) { logger.info("process new message: {0}", message); MessageModelDelivered messageModel = new MessageModelDelivered(message); Peer targetPeer = messageModel.Peer; DialogModel targetDialogModel = null; foreach(DialogModel dialogModel in dialogs) { if (!dialogModel.IsEncrypted && TLStuff.PeerEquals(dialogModel.Peer, targetPeer)) { targetDialogModel = dialogModel; break; } } if(targetDialogModel == null) { logger.info("target dialog not found, creating new..."); targetDialogModel = new DialogModelPlain(messageModel, session); dialogs.Insert(0, targetDialogModel); } else { logger.info("target dialog found, rearrange..."); UpDialog(targetDialogModel); } targetDialogModel.ProcessNewMessage(messageModel); if(targetDialogModel == TelegramSession.Instance.Dialogs.OpenedDialog) { targetDialogModel.OpenedRead(); } }