public static void UpdateRecentExperimentList(string pListLocation, string pExperimentFile) { RecentExperimentList list = LoadRecentExperimentListFromXML(pListLocation); RecentExperimentReference newRef = new RecentExperimentReference(pExperimentFile); if (list.Contains(newRef)) { list.Remove(newRef); } list.Add(newRef); SaveRecentExperimentListToXML(list, pListLocation); }
public static RecentExperimentList LoadRecentExperimentListFromXML(string pFilepath) { RecentExperimentList list = new RecentExperimentList(); if (System.IO.File.Exists(pFilepath)) { try { System.Xml.XPath.XPathDocument doc = new System.Xml.XPath.XPathDocument(pFilepath); System.Xml.XPath.XPathNavigator nav = doc.CreateNavigator(); System.Xml.XPath.XPathNodeIterator itemIterator = nav.Select("/RecentExperiments/RecentExperimentItem"); int numItems = itemIterator.Count; string fullpath, time; while (itemIterator.MoveNext()) { fullpath = itemIterator.Current.GetAttribute("FullPath", String.Empty); time = itemIterator.Current.GetAttribute("LastAccessTime", String.Empty); RecentExperimentReference item = RecentExperimentReference.CreateRecentExperimentItem(fullpath, time); if (item != null) { list.AddLast(item); } } if (list.Count != numItems) { RecentExperimentsHelper.SaveRecentExperimentListToXML(list, pFilepath); } } catch (XmlException) { System.IO.File.Delete(pFilepath); list.Clear(); } } return(list); }