public void ReadXml(XmlReader reader) { if (!reader.IsStartElement()) { reader.ReadStartElement("Configuration"); } if (reader.IsEmptyElement) { return; } while (reader.Read()) { if (reader.NodeType == XmlNodeType.EndElement && reader.Name == "Configuration") { return; } if (reader.NodeType == XmlNodeType.Element && reader.Name == "Application") { Applications.Add(new Application(reader)); } if (reader.NodeType == XmlNodeType.Element && reader.Name == "RecentUsage") { RecentUsages.Add(new RecentUsage(reader)); } } }
private void AddRecentUsage(string id, int increment, bool saveChanges) { RecentUsage recentUsage = RecentUsages.FirstOrDefault(recent => (recent.ID == id)); if (recentUsage != null) { recentUsage.Count += increment; } else { recentUsage = new RecentUsage(id, increment); RecentUsages.Add(recentUsage); } RecentUsages = RecentUsages.ToDictionary(recent => recent, recent => ApplicationControl.GetApplicationByID(recent.ID)) .OrderByDescending(recentPair => recentPair.Key.Count) .ThenBy(recentPair => (recentPair.Value != null ? recentPair.Value.Name : recentPair.Key.ID)) .Select(recentPair => recentPair.Key).ToList(); if (saveChanges) { RegistryHandler.SaveConfiguration(this, true); } }