public void LoadFromXML(string xml)
{
XmlDocument xmldoc = new XmlDocument();
xmldoc.LoadXml(xml);
XPathNavigator nav = xmldoc.CreateNavigator();
XPathNodeIterator iterator = nav.Select("/FlickrSync/SyncFolder");
while (iterator.MoveNext())
{
SyncFolder sf = new SyncFolder();
XPathNavigator nav2 = iterator.Current;
sf.LoadFromXPath(nav2);
DirectoryInfo dir = new DirectoryInfo(sf.FolderPath);
if (!dir.Exists)
{
if (FlickrSync.messages_level != FlickrSync.MessagesLevel.MessagesNone)
{
if (MessageBox.Show("Folder " + sf.FolderPath + " no longer exists. Remove from configuration?", "Warning", MessageBoxButtons.YesNo) == DialogResult.Yes)
{
FlickrSync.Log(FlickrSync.LogLevel.LogAll, sf.FolderPath + "marked for removal from configuration");
continue;
}
else
{
FlickrSync.Log(FlickrSync.LogLevel.LogAll, sf.FolderPath + "does not exists");
}
}
}
SyncFolders.Add(sf);
}
iterator = nav.Select("/FlickrSync/PathInfo");
while (iterator.MoveNext())
{
PathInfo pi = new PathInfo();
XPathNavigator nav2 = iterator.Current;
pi.LoadFromXPath(nav2);
DirectoryInfo dir = new DirectoryInfo(pi.Path);
if (!dir.Exists)
{
if (!pi.ManualAdd)
{
continue;
}
if (FlickrSync.messages_level != FlickrSync.MessagesLevel.MessagesNone)
{
if (MessageBox.Show("Folder " + pi.Path + " no longer exists. Remove from configuration?", "Warning", MessageBoxButtons.YesNo) == DialogResult.Yes)
{
FlickrSync.Log(FlickrSync.LogLevel.LogAll, "Path" + pi.Path + " marked for removal from configuration");
continue;
}
else
{
FlickrSync.Log(FlickrSync.LogLevel.LogAll, "Path" + pi.Path + " no longer exists");
}
}
}
PathInfoList.Add(pi);
}
}