private void AddToInvasionConstructionPostQueue(WarframeInvasionConstruction construction, bool invasionHasExpired) { if (!_invasionConstructionMessagePostQueue.Any(x => x.WarframeEvent.GUID == construction.GUID)) { _invasionConstructionMessagePostQueue.Add(new MessageQueueElement <WarframeInvasionConstruction>(construction, false, invasionHasExpired)); } }
public static string DiscordMessage(this WarframeInvasionConstruction project, bool isNotification) { var factionName = project.Faction; var projectName = project.ProjectName; var progress = project.ProjectProgress; var returnMessage = new StringBuilder(); if (progress > 0.0) { returnMessage.AppendLine($"{factionName} {projectName}: {string.Format("{0:0.00}", progress)}% Complete"); } return(returnMessage.ToString()); }
//Parse information about the faction construction projects public IEnumerable <WarframeInvasionConstruction> GetInvasionConstruction() { const string IDENTIFIER_PREFIX = "ProjectPct"; JObject worldState = _scraper.WorldState; var resultConstructionProjects = new List <WarframeInvasionConstruction>(); var currentIteration = 0; //Find Projects foreach (var jsonInvasionConstructionProject in worldState["ProjectPct"]) { var projectIdentifier = new StringBuilder(IDENTIFIER_PREFIX + currentIteration); WarframeInvasionConstruction currentConstructionProject = _constructionProjectsList.Find(x => x.GUID == projectIdentifier.ToString()); var progress = double.Parse(jsonInvasionConstructionProject.ToString()); if (currentConstructionProject == null) { currentConstructionProject = new WarframeInvasionConstruction(projectIdentifier.ToString(), currentIteration, progress); _constructionProjectsList.Add(currentConstructionProject); #if DEBUG Console.WriteLine("New Construction Project Event"); #endif } else { if (currentConstructionProject.IsExpired()) { _constructionProjectsList.Remove(currentConstructionProject); } } if ((currentConstructionProject != null) && (!currentConstructionProject.IsExpired())) { currentConstructionProject.UpdateProgress(progress); resultConstructionProjects.Add(currentConstructionProject); } ++currentIteration; } return(_constructionProjectsList); }