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 })); } } }
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); }