public virtual void Update(TLDialog dialog) { Flags = dialog.Flags; Draft = dialog.Draft; ReadInboxMaxId = dialog.ReadInboxMaxId; Peer = dialog.Peer; UnreadCount = dialog.UnreadCount; UnreadMentionsCount = dialog.UnreadMentionsCount; //если последнее сообщение отправляется и имеет дату больше, то не меняем if (TopMessageItem == null && (TopMessageItem == null || TopMessageItem.Date > dialog.TopMessageItem.Date)) { //добавляем сообщение в список в нужное место, если его еще нет var insertRequired = false; if (Messages != null && dialog.TopMessageItem != null) { var oldMessage = Messages.FirstOrDefault(x => x.Id == dialog.TopMessageItem.Id); if (oldMessage == null) { insertRequired = true; } } if (insertRequired) { InsertMessageInOrder(Messages, dialog.TopMessageItem); } return; } TopMessage = dialog.TopMessage; TopMessageRandomId = dialog.TopMessageRandomId; TopMessageItem = dialog.TopMessageItem; lock (MessagesSyncRoot) { if (Messages.Count > 0) { for (int i = 0; i < Messages.Count; i++) { if (Messages[i].Date < TopMessageItem.Date) { Messages.Insert(i, TopMessageItem); break; } if (Messages[i].Date == TopMessageItem.Date) { break; } } } else { Messages.Add(TopMessageItem); } } }
public override void Update(TLDialog dialog) { try { base.Update(dialog); } catch (Exception ex) { } var dialog24 = dialog as TLDialog24; if (dialog24 != null) { ReadInboxMaxId = dialog24.ReadInboxMaxId; } }
public override void Update(TLDialog dialog) { try { base.Update(dialog); } catch (Exception ex) { } var d = dialog as TLDialogChannel; if (d != null) { TopImportantMessageId = d.TopImportantMessageId; UnreadImportantCount = d.UnreadImportantCount; Pts = d.Pts; } }
public virtual void Update(TLDialog dialog) { Peer = dialog.Peer; UnreadCount = dialog.UnreadCount; //если последнее сообщение отправляется и имеет дату больше, то не меняем if (TopMessageId == null && TopMessage.DateIndex > dialog.TopMessage.DateIndex) { //добавляем сообщение в список в нужное место InsertMessageInOrder(Messages, dialog.TopMessage); return; } TopMessageId = dialog.TopMessageId; TopMessageRandomId = dialog.TopMessageRandomId; TopMessage = dialog.TopMessage; if (Messages.Count > 0) { for (int i = 0; i < Messages.Count; i++) { if (Messages[i].DateIndex < TopMessage.DateIndex) { Messages.Insert(i, TopMessage); break; } if (Messages[i].DateIndex == TopMessage.DateIndex) { break; } } } else { Messages.Add(TopMessage); } }