FilezillaPermission.Update C# (CSharp) Method

Update() public method

Update the permissions in an XML node from the object
public Update ( XmlDocument doc, XmlNode perm ) : bool
doc XmlDocument xml document
perm XmlNode
return bool
	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;
	}
}