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
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								}
							 |