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