Пример #1
0
        private async Task AnnounceUserMapping(UserMapping userMapping, IUser actor, RestAction action)
        {
            using var scope = _serviceProvider.CreateScope();

            _logger.LogInformation($"Announcing usermap {userMapping.GuildId}/{userMapping.UserA}-{userMapping.UserB} ({userMapping.Id}).");

            GuildConfig guildConfig = await GuildConfigRepository.CreateDefault(scope.ServiceProvider).GetGuildConfig(userMapping.GuildId);

            if (!string.IsNullOrEmpty(guildConfig.ModInternalNotificationWebhook))
            {
                _logger.LogInformation($"Sending internal webhook for usermap {userMapping.GuildId}/{userMapping.UserA}-{userMapping.UserB} ({userMapping.Id}) to {guildConfig.ModInternalNotificationWebhook}.");

                try
                {
                    EmbedBuilder embed = await userMapping.CreateUserMapEmbed(action, actor, scope.ServiceProvider);

                    await _discordAPI.ExecuteWebhook(guildConfig.ModInternalNotificationWebhook, embed.Build());
                }
                catch (Exception e)
                {
                    _logger.LogError(e, $"Error while announcing usermap {userMapping.GuildId}/{userMapping.UserA}-{userMapping.UserB} ({userMapping.Id}) to {guildConfig.ModInternalNotificationWebhook}.");
                }
            }
        }