Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }