public bool Update(XmlDocument doc, XmlNode perm)
{
try
{
// set the corresponding directory
perm.SelectSingleNode("./@Dir").ChildNodes[0].Value = Dir;
// update the options that are supported
perm.SelectSingleNode("./Option[@Name='FileRead']").ChildNodes[0].Value = (OptionFileRead) ? "1" : "0";
perm.SelectSingleNode("./Option[@Name='FileWrite']").ChildNodes[0].Value = (OptionFileWrite) ? "1" : "0";
perm.SelectSingleNode("./Option[@Name='FileDelete']").ChildNodes[0].Value = (OptionFileDelete) ? "1" : "0";
perm.SelectSingleNode("./Option[@Name='FileAppend']").ChildNodes[0].Value = (OptionFileAppend) ? "1" : "0";
perm.SelectSingleNode("./Option[@Name='DirCreate']").ChildNodes[0].Value = (OptionDirCreate) ? "1" : "0";
perm.SelectSingleNode("./Option[@Name='DirDelete']").ChildNodes[0].Value = (OptionDirDelete) ? "1" : "0";
perm.SelectSingleNode("./Option[@Name='DirList']").ChildNodes[0].Value = (OptionDirList) ? "1" : "0";
perm.SelectSingleNode("./Option[@Name='DirSubdirs']").ChildNodes[0].Value = (OptionDirSubdirs) ? "1" : "0";
perm.SelectSingleNode("./Option[@Name='IsHome']").ChildNodes[0].Value = (OptionIsHome) ? "1" : "0";
perm.SelectSingleNode("./Option[@Name='AutoCreate']").ChildNodes[0].Value = (OptionAutoCreate) ? "1" : "0";
// remove any alias definitions
XmlNode aliasesNode = perm.SelectSingleNode("./Aliases");
perm.RemoveChild(aliasesNode);
// if there are aliases, create the node and children
if (Aliases.Count > 0)
{
aliasesNode = doc.CreateElement("Aliases");
foreach (string alias in Aliases)
{
XmlNode aliasNode = doc.CreateElement("Alias");
aliasNode.Value = alias;
aliasesNode.AppendChild(aliasNode);
}
perm.AppendChild(aliasesNode);
}
}
catch (Exception)
{
return false;
}
return true;
}
}