Esempio n. 1
0
        private async void MessageDeleteExecute(MessageViewModel message)
        {
            if (message == null)
            {
                return;
            }

            var chat = message.GetChat();

            if (chat == null)
            {
                return;
            }

            //if (message != null && message.Media is TLMessageMediaGroup groupMedia)
            //{
            //    ExpandSelection(new[] { message });
            //    MessagesDeleteExecute();
            //    return;
            //}

            if (message != null && !message.IsOutgoing && !message.IsChannelPost && chat.Type is ChatTypeSupergroup super && !super.IsChannel)
            {
                var sender = message.GetSenderUser();
                var dialog = new DeleteChannelMessageDialog(1, sender?.GetFullName());

                var result = await dialog.ShowQueuedAsync();

                if (result == ContentDialogResult.Primary)
                {
                    if (dialog.DeleteAll)
                    {
                        ProtoService.Send(new DeleteChatMessagesFromUser(chat.Id, message.SenderUserId));
                    }
                    else
                    {
                        ProtoService.Send(new DeleteMessages(chat.Id, new[] { message.Id }, true));
                    }

                    if (dialog.BanUser)
                    {
                        ProtoService.Send(new SetChatMemberStatus(chat.Id, message.SenderUserId, new ChatMemberStatusBanned()));
                    }

                    if (dialog.ReportSpam && chat.Type is ChatTypeSupergroup supertype)
                    {
                        ProtoService.Send(new ReportSupergroupSpam(supertype.SupergroupId, message.SenderUserId, new[] { message.Id }));
                    }
                }
            }
Esempio n. 2
0
        private User GetBot(MessageViewModel message)
        {
            var via = message.GetViaBotUser();

            if (via != null)
            {
                return(via);
            }

            var sender = message.GetSenderUser();

            if (sender.Type is UserTypeBot)
            {
                return(sender);
            }

            return(null);
        }