示例#1
0
        public void DeleteMessages()
        {
            var deletingMessages = Items.Where(x => x.IsSelected).ToList();

            if (deletingMessages.Count > 0)
            {
                var chat = Chat as TLEncryptedChat;
                if (chat == null)
                {
                    return;
                }

                var messageId = new TLVector <TLLong> {
                    Items = deletingMessages.Select(x => x.RandomId).ToList()
                };

                var action = new TLDecryptedMessageActionDeleteMessages {
                    RandomIds = messageId
                };

                var decryptedTuple = GetDecryptedServiceMessageAndObject(action, chat, MTProtoService.CurrentUserId, CacheService);

                SendEncryptedService(chat, decryptedTuple.Item2, MTProtoService, CacheService,
                                     result => BeginOnUIThread(() =>
                {
                    foreach (var deletedMessage in deletingMessages)
                    {
                        Items.Remove(deletedMessage);
                    }
                    NotifyOfPropertyChange(() => DescriptionVisibility);
                    CacheService.DeleteDecryptedMessages(messageId);
                }));
            }
        }
示例#2
0
        private void DeleteMessage(TLDecryptedMessage message)
        {
            if (message == null)
            {
                return;
            }

            var chat = Chat as TLEncryptedChat;

            if (chat == null)
            {
                return;
            }

            var messageId = new TLVector <TLLong> {
                message.RandomId
            };

            if (message.Status == MessageStatus.Failed)
            {
                Items.Remove(message);
                NotifyOfPropertyChange(() => DescriptionVisibility);
                CacheService.DeleteDecryptedMessages(messageId);
            }
            else
            {
                var deleteMessagesAction = new TLDecryptedMessageActionDeleteMessages {
                    RandomIds = messageId
                };

                var decryptedTuple = GetDecryptedServiceMessageAndObject(deleteMessagesAction, chat, MTProtoService.CurrentUserId, CacheService);

                SendEncryptedService(chat, decryptedTuple.Item2, MTProtoService, CacheService,
                                     result => BeginOnUIThread(() =>
                {
                    Items.Remove(message);
                    NotifyOfPropertyChange(() => DescriptionVisibility);
                    CacheService.DeleteDecryptedMessages(messageId);
                }));
            }
        }