private async Task SendHolderChangedMessage(JsonClasses.SovStructureData data, JsonClasses.SovStructureData old, SovTrackerGroup @group, bool isTcu) { var system = await APIHelper.ESIAPI.GetSystemData(Reason, data?.solar_system_id ?? old.solar_system_id); var owner = data != null ? await APIHelper.ESIAPI.GetAllianceData(Reason, data.alliance_id) : null; var oldOwner = old != null ? await APIHelper.ESIAPI.GetAllianceData(Reason, old.alliance_id) : null; string msg; if (owner == null) { msg = LM.Get("sovLostStructure", isTcu? "TCU": "IHUB"); } else { var oldHolder = old == null?LM.Get("sovSystemUncontested") : LM.Get("sovSystemWasOwnedBy", oldOwner.name, oldOwner.ticker); var timers = data == null ? null : LM.Get("sovNextVulnerability", data.vulnerable_start_time.ToString(Settings.Config.ShortTimeFormat), data.vulnerable_end_time.ToString(Settings.Config.ShortTimeFormat)); msg = $"{LM.Get("sovNewHolder", owner.name, owner.ticker)} {oldHolder}{timers}"; } var embed = new EmbedBuilder() .WithThumbnailUrl(Settings.Resources.ImgLowFWStand) .AddField(LM.Get("sovSystem"), system?.name ?? LM.Get("Unknown"), true) .AddField(LM.Get("sovMessage"), msg); var ch = APIHelper.DiscordAPI.GetChannel(group.DiscordChannelId); var mention = string.Join(' ', group.DiscordMentions); if (string.IsNullOrEmpty(mention)) { mention = " "; } await APIHelper.DiscordAPI.SendMessageAsync(ch, $"{mention}", embed.Build()).ConfigureAwait(false); }
private async Task SendIndexWarningMessage(JsonClasses.SovStructureData data, SovTrackerGroup group) { var system = await APIHelper.ESIAPI.GetSystemData(Reason, data.solar_system_id); var alliance = await APIHelper.ESIAPI.GetAllianceData(Reason, data.alliance_id); var msg = LM.Get("sovLowIndexMessage", data.vulnerability_occupancy_level); var embed = new EmbedBuilder() .WithThumbnailUrl(Settings.Resources.ImgLowFWStand) .AddField(LM.Get("sovSystem"), system?.name ?? LM.Get("Unknown"), true) .AddField(LM.Get("sovHolder"), alliance?.name ?? LM.Get("Unknown"), true) .AddField(LM.Get("sovMessage"), msg); var ch = APIHelper.DiscordAPI.GetChannel(group.DiscordChannelId); var mention = string.Join(' ', group.DiscordMentions); if (string.IsNullOrEmpty(mention)) { mention = " "; } await APIHelper.DiscordAPI.SendMessageAsync(ch, $"{mention}", embed.Build()).ConfigureAwait(false); }
private List <JsonClasses.SovStructureData> GetUpdatedList(List <JsonClasses.SovStructureData> data, SovTrackerGroup group, string groupName, List <long> holderIds) { var t2 = Stopwatch.StartNew(); try { var list = data.ToList(); var groupSystems = GetParsedSolarSystems(groupName) ?? new List <long>(); var groupConstellations = GetParsedConstellations(groupName) ?? new List <long>(); var groupRegions = GetParsedRegions(groupName) ?? new List <long>(); if (groupSystems.Any()) { list = list.Where(a => groupSystems.Contains(a.solar_system_id)).ToList(); } if (holderIds.Any()) { list = list.Where(a => holderIds.Contains(a.alliance_id)).ToList(); } if (groupSystems.Any()) { list = list.Where(a => groupSystems.Contains(a.solar_system_id)).ToList(); } var hasRegions = groupRegions.Any(); var hasConsts = groupConstellations.Any(); if (hasRegions || hasConsts) { list = list.Where(a => { var system = APIHelper.ESIAPI.GetSystemData(Reason, a.solar_system_id).GetAwaiter().GetResult(); if (!system.DB_RegionId.HasValue) { return(false); } if (hasRegions && groupRegions.Contains(system.DB_RegionId.Value)) { return(true); } return(hasConsts && @groupConstellations.Contains(system.constellation_id)); }).ToList(); } return(list); } finally { t2.Stop(); Debug.WriteLine($"Sov Upd: {t2.Elapsed.TotalSeconds}sec"); } }