/// <summary> /// /// </summary> /// <param name="DESystem"></param> /// <param name="stateToDisplay"></param> public void DisplayHistoryData(DESystemsForDisplay DESystem, string stateToDisplay) { // Get the history list and reverse sort so latest is first. List <DESystemsHistory> sysHist = new List <DESystemsHistory>(DESystem.FactionHistory); sysHist = sysHist.OrderByDescending(r => r.timestamp).ToList(); foreach (var fhr in sysHist) { TimeSpan span = DateTime.Today.Subtract(fhr.timestamp.Date); if (!ShellViewModel.DisplayFullHistory) { if ((int)span.TotalDays > 30) { continue; } } // Sort the Dates HistoryDatesList hdl = new HistoryDatesList(); hdl.HistDate = fhr.timestamp.ToShortDateString(); HistDates.Add(hdl); SystemsFactionsHistory sfh = new SystemsFactionsHistory(); sfh.FactionHist = new ObservableCollection <FactionHistData>(); sfh.UpdatedAt = fhr.timestamp; // Get the index to the current history record var histIndex = sysHist.FindIndex(m => m.timestamp == fhr.timestamp); // Create temp list of factions and sort in influence order List <FullFactionData> fhs = new List <FullFactionData>(fhr.Factions); // Dump "Pilots Federation Local Branch" from the new list fhs.RemoveAll(x => x.Name.Contains("Federation Local Branch")); foreach (var fullFactionData in fhs) { SystemsFactionsHistory sysFactionHist = new SystemsFactionsHistory(); sysFactionHist.FactionHist = new ObservableCollection <FactionHistData>(); sysFactionHist.FactionName = fullFactionData.Name; sysFactionHist.UpdatedAt = fhr.timestamp; FactionHistData factionHistoryData = new FactionHistData(); factionHistoryData.fInf = fullFactionData.Influence; if (fullFactionData.ActiveStates != null) { fullFactionData.ActiveStates = AddSpaces(fullFactionData.ActiveStates); factionHistoryData.ActiveStates = new ObservableCollection <States>(fullFactionData.ActiveStates); } if (fullFactionData.PendingStates != null) { fullFactionData.PendingStates = AddSpaces(fullFactionData.PendingStates); factionHistoryData.PendingStates = new ObservableCollection <States>(fullFactionData.PendingStates); } if (fullFactionData.RecoveringStates != null) { fullFactionData.RecoveringStates = AddSpaces(fullFactionData.RecoveringStates); factionHistoryData.RecoveringStates = new ObservableCollection <States>(fullFactionData.RecoveringStates); } sysFactionHist.FactionHist.Add(factionHistoryData); SystemHistory.Add(sysFactionHist); } SystemHistory.Add(sfh); } }