Exemplo n.º 1
0
        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);
                    }
                }
            }
        }
Exemplo n.º 2
0
        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);
                }
            }
        }