private async void OnMessageFlagsAdded(LongPollMessageFlagsAdded message) { long uid = message.UserId; var dialog = Dialogs?.FirstOrDefault(d => uid > 2000000000 ? d.Message.ChatId == uid - 2000000000 : d.User.Profile.Id == uid); if (dialog != null) { dialog.IsRead = (message.Flags & VkLongPollMessageFlags.Unread) == VkLongPollMessageFlags.Unread; if ((message.Flags & VkLongPollMessageFlags.Deleted) == VkLongPollMessageFlags.Deleted) { try { var response = await ServiceLocator.Vkontakte.Messages.GetHistory(uid > 2000000000? 0 : uid, uid > 2000000000?uid - 2000000000 : 0, count : 1); if (response.TotalCount == 0) { Dialogs.Remove(dialog); } else { var title = dialog.Message.Title; var newLastMessages = response.Items.First(); newLastMessages.Title = title; dialog.Message = newLastMessages; } } catch (Exception ex) { Debug.WriteLine(ex); } } } }
private void OnMessageFlagsAdded(LongPollMessageFlagsAdded message) { var m = Messages?.FirstOrDefault(x => x.MessageContent.Id == message.MessageId); if (m != null) { m.IsRead = (message.Flags & VkLongPollMessageFlags.Unread) == VkLongPollMessageFlags.Unread; if ((message.Flags & VkLongPollMessageFlags.Deleted) == VkLongPollMessageFlags.Deleted) { Messages.Remove(m); } } }