FMTMenuItem CreateDirectoriesByXmlConfig(XmlNode xmlNode, string directory) { if (xmlNode.Name != "Item" && xmlNode.Name != "Items") { return(null); } var item = new FMTMenuItem(); // var newPath = Path.Combine(directory, xmlNode.Attributes["Name"].Value); item.Path = GetFMTMenuItemRelativePath(directory); item.Name = xmlNode.Attributes["Name"].Value; item.Title = xmlNode.Attributes["Title"].Value; string filenameOnly = System.IO.Path.GetFileName(directory); if (filenameOnly.Length == 0) { Directory.CreateDirectory(directory); } item.MenuItems = new List <FMTMenuItem>(); foreach (XmlNode childXmlNode in xmlNode.ChildNodes) { item.MenuItems.Add(CreateDirectoriesByXmlConfig(childXmlNode, Path.Combine(directory, childXmlNode.Attributes["Name"].Value))); } return(item); }
FMTMenuItem GetMenuItems(XmlNode xmlNode, string directory, string root, string userName) { if (xmlNode.Name != "Item" && xmlNode.Name != "Items") { return(null); } var item = new FMTMenuItem(); item.Name = xmlNode.Attributes["Name"].Value; item.Path = GetFMTMenuItemRelativePath(directory); item.Title = Regex.Replace(xmlNode.Attributes["Title"].Value, "((?<=[a-z])[A-Z]|[A-Z](?=[a-z]))", " $1"); item.MenuItems = new List <FMTMenuItem>(); foreach (XmlNode childXmlNode in xmlNode.ChildNodes) { //check if user has rights to see menu entry (rights via groups) bool hasRights = HasUserAccessRights(root, userName, childXmlNode.Attributes["Name"].Value); if (hasRights) { item.MenuItems.Add(GetMenuItems(childXmlNode, directory + @"\\" + childXmlNode.Attributes["Name"].Value, root, userName)); } } return(item); }