示例#1
0
        public async Task HandleNotificationAsync(IMessageDelete notification, CancellationToken ct)
        {
            var message   = notification;
            var channelId = notification.ChannelID;
            var guild     = notification.GuildID;

            var isThreadChannel = await _threadService.IsThreadChannelAsync(channelId, ct);

            if (!isThreadChannel)
            {
                return;
            }

            using var logScope = MessageLogMessages.BeginMessageNotificationScope(_logger, guild.Value.Value, channelId.Value, notification.ID.Value);

            MessageLogMessages.MessageDeletedHandling(_logger);

            await TryTrackMessageAsync(
                guild,
                null,
                async (_) =>
            {
                MessageLogMessages.MessageRecordDeleting(_logger);
                await _messageRepository.DeleteAsync(notification.ID.Value);
                MessageLogMessages.MessageRecordDeleted(_logger);
            });

            MessageLogMessages.MessageDeletedHandled(_logger);
        }