Ejemplo n.º 1
0
        private static async Task _PostGroupToDiscord(IEnumerable <IGrouping <string, PlayerHistory> > grouped, FleetData fleetData, string url, string header)
        {
            StringBuilder message = new StringBuilder();

            message.AppendLine(header);

            foreach (var group in grouped)
            {
                var squad = fleetData.Squads.FirstOrDefault(s => s.Id == group.Key);

                var squadName = Regex.Replace(squad?.Name ?? "Ohne Squad", @"\<\#[^<>]*\>", string.Empty);
                message.AppendLine($"__{squadName}__ --- **{squad?.LastEventRank.Rank ?? 0}** --- (Avg {squad?.EventRanks.Select(e => e.Value.Rank).Average() ?? 0} of {squad?.EventRanks.Count ?? 0})");
                foreach (var member in group)
                {
                    var player = fleetData.Players.FirstOrDefault(p => p.Id == member.Id);
                    int avg    = (int)Math.Floor(player?.EventRanks.Select(e => e.Value.Rank).Average() ?? 0);

                    message.AppendLine($"{member.Name}: **{player?.LastEventRank.Rank ?? 0}** --- (Avg {avg} of {player?.EventRanks.Count ?? 0})");
                }
                message.AppendLine(string.Empty);
            }

            HttpClient client = new HttpClient();
            var        d1     = JsonConvert.SerializeObject(new { content = message.ToString() });
            var        result = await client.PostAsync(url, new StringContent(d1, Encoding.UTF8, "application/json"));

            result.EnsureSuccessStatusCode();
        }
Ejemplo n.º 2
0
        private static async Task _SendToDiscord(ILogger log, List <PlayerHistory> players, FleetData fleetData, string url)
        {
            string header  = $"Events (UTC) {DateTime.UtcNow.ToString("dd.MM.yyyy HH:mm")}";
            var    grouped = players.GroupBy(d => d.SquadId);

            var g1 = grouped.Take(5);
            var g2 = grouped.Skip(5);

            await _PostGroupToDiscord(g1, fleetData, url, $"{header}");
            await _PostGroupToDiscord(g2, fleetData, url, $"        -");
        }