Example #1
0
        public static async Task LogTransmissionToDiscord(string transmission, RadioInformation radioInfo, Network.Client client)
        {
            transmission += $"\nClients on freq {radioInfo.freq / 1000000}MHz: {string.Join(", ", client.GetHumansOnFreq(radioInfo))}\n" +
                            $"Total / Compatible / On Freq Callsigns : {client.GetHumanSrsClientNames().Count} / {client.GetBotCallsignCompatibleClients().Count} / {client.GetHumansOnFreq(radioInfo).Count}\n" +
                            $"On Freq percentage of Total / Compatible: { Math.Round(client.GetHumansOnFreq(radioInfo).Count / (double)client.GetHumanSrsClientNames().Count * 100, 2) }% / " +
                            $"{ Math.Round(client.GetHumansOnFreq(radioInfo).Count / (double)client.GetBotCallsignCompatibleClients().Count * 100, 2) }%";

            if (_socket == null || _socket.ConnectionState != ConnectionState.Connected)
            {
                return;
            }
            try
            {
                using (Constants.ActivitySource.StartActivity("DiscordClient.LogToDiscord", ActivityKind.Client))
                {
                    await _socket.GetGuild(TransmissionLogDiscordGuildId)
                    .GetTextChannel(radioInfo.discordTransmissionLogChannelId).SendMessageAsync(transmission);
                }
            }
            catch (Exception e)
            {
                Logger.Error(e);
            }
        }