121 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			121 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			C#
		
	
	
	
using System;
 | 
						|
using System.Collections.Generic;
 | 
						|
using System.Linq;
 | 
						|
using System.Text;
 | 
						|
using System.IO;
 | 
						|
using System.Xml;
 | 
						|
 | 
						|
namespace BLL
 | 
						|
{
 | 
						|
    public static class CreateMenuXML
 | 
						|
    {
 | 
						|
        /// <summary>
 | 
						|
        /// 取菜单创建XMl
 | 
						|
        /// </summary>
 | 
						|
        public static void getMenuXML()
 | 
						|
        {            
 | 
						|
            var sysMenus =SysMenuService.GetIsUsedMenuListByMenuType(null);
 | 
						|
            if (sysMenus.Count() > 0) ///说明当前单位已设置了菜单
 | 
						|
            {              
 | 
						|
                var getMenuTypeList = sysMenus.Select(x => x.MenuType).Distinct();
 | 
						|
                if (getMenuTypeList.Count() > 0)
 | 
						|
                {
 | 
						|
                    foreach (var item in getMenuTypeList)
 | 
						|
                    {
 | 
						|
                        var getMenu = sysMenus.Where(x => x.MenuType == item).ToList();
 | 
						|
                        CreateMenuDataXML(item, getMenu, "0", null);
 | 
						|
                    }
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        #region 创建菜单信息XML方法
 | 
						|
        /// <summary>
 | 
						|
        /// 创建菜单信息XML方法
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="fileName"></param>
 | 
						|
        public static void CreateMenuDataXML(string menuType, List<Model.Sys_Menu> menusList, string superMenu, XmlTextWriter writer)
 | 
						|
        {           
 | 
						|
            try
 | 
						|
            {
 | 
						|
                if (superMenu == "0")
 | 
						|
                {
 | 
						|
                    ///xml文件路径名
 | 
						|
                    string fileName = Funs.RootPath + "common\\" + menuType + ".xml";
 | 
						|
                    FileStream fileStream = new FileStream(fileName, FileMode.Create);
 | 
						|
                    writer = new XmlTextWriter(fileStream, Encoding.UTF8)
 | 
						|
                    {
 | 
						|
                        //使用自动缩进便于阅读
 | 
						|
                        Formatting = Formatting.Indented
 | 
						|
                    };
 | 
						|
                    writer.WriteStartDocument();
 | 
						|
                    writer.WriteStartElement("Tree");    //创建父节点
 | 
						|
                    var menuItemList = menusList.Where(x => x.SuperMenu == superMenu).OrderBy(x=>x.SortIndex);    //获取菜单列表
 | 
						|
                    if (menuItemList.Count() > 0)
 | 
						|
                    {
 | 
						|
                        foreach (var item in menuItemList)
 | 
						|
                        {
 | 
						|
                            writer.WriteStartElement("TreeNode");    //创建子节点
 | 
						|
                            writer.WriteAttributeString("id", item.MenuId);    //添加属性
 | 
						|
                            writer.WriteAttributeString("Text", item.MenuName);
 | 
						|
                            writer.WriteAttributeString("NavigateUrl", item.Url);
 | 
						|
                            //if (!string.IsNullOrEmpty(item.Icon))
 | 
						|
                            //{
 | 
						|
                            //    writer.WriteAttributeString("Icon", item.Icon);
 | 
						|
                            //}else
 | 
						|
                            //{
 | 
						|
                            //    writer.WriteAttributeString("Icon", "LayoutContent");
 | 
						|
                            //}
 | 
						|
                            if (!item.IsEnd.HasValue || item.IsEnd == false)
 | 
						|
                            {
 | 
						|
                                CreateMenuDataXML(menuType, menusList, item.MenuId, writer);
 | 
						|
                            }
 | 
						|
                            writer.WriteFullEndElement();    //子节点结束
 | 
						|
                            //在节点间添加一些空格
 | 
						|
                            writer.WriteWhitespace("\n");
 | 
						|
                        }
 | 
						|
                    }
 | 
						|
                    writer.WriteFullEndElement();    //父节点结束
 | 
						|
                    writer.Close();
 | 
						|
                    fileStream.Close();
 | 
						|
                }
 | 
						|
                else
 | 
						|
                {
 | 
						|
                    var subMenuItemList = menusList.Where(x => x.SuperMenu == superMenu).OrderBy(x => x.SortIndex);    //获取菜单集合
 | 
						|
                    if (subMenuItemList.Count() > 0)
 | 
						|
                    {
 | 
						|
                        foreach (var item in subMenuItemList)
 | 
						|
                        {
 | 
						|
                            //使用自动缩进便于阅读
 | 
						|
                            writer.Formatting = Formatting.Indented;
 | 
						|
                            writer.WriteStartElement("TreeNode");    //创建子节点
 | 
						|
                            writer.WriteAttributeString("id", item.MenuId);    //添加属性
 | 
						|
                            writer.WriteAttributeString("Text", item.MenuName);
 | 
						|
                            writer.WriteAttributeString("NavigateUrl", item.Url);
 | 
						|
                            //if (!string.IsNullOrEmpty(item.Icon))
 | 
						|
                            //{
 | 
						|
                            //    writer.WriteAttributeString("Icon", item.Icon);
 | 
						|
                            //}
 | 
						|
                            //else
 | 
						|
                            //{
 | 
						|
                            //    writer.WriteAttributeString("Icon", "LayoutContent");
 | 
						|
                            //}
 | 
						|
                            if (!item.IsEnd.HasValue || item.IsEnd == false)
 | 
						|
                            {
 | 
						|
                                CreateMenuDataXML(menuType, menusList, item.MenuId, writer);
 | 
						|
                            }
 | 
						|
                            writer.WriteFullEndElement();    //子节点结束
 | 
						|
                            //在节点间添加一些空格
 | 
						|
                            writer.WriteWhitespace("\n");
 | 
						|
                        }
 | 
						|
                    }
 | 
						|
                }
 | 
						|
            }
 | 
						|
            catch (Exception ex)
 | 
						|
            {
 | 
						|
                ErrLogInfo.WriteLog(string.Empty, ex);
 | 
						|
            }
 | 
						|
        }
 | 
						|
        #endregion
 | 
						|
    }
 | 
						|
} |