using System.Collections.Generic;
using System.Linq;
using MySystem.Models.Bs;
using System.Data;
namespace MySystem
{
///
/// 基础功能方法
///
public class BaseClass
{
public static Models.Bs.WebCMSEntities bsdb = new Models.Bs.WebCMSEntities();
#region 菜单权限json
///
/// 菜单权限json
///
///
public static string GetRightJson()
{
string result = "[";
List list = bsdb.RightDic.ToList();
List Level1 = list.Where(m => m.RightLevel == 1).ToList();
foreach (RightDic sub1 in Level1)
{
result += "{\"title\": \"" + sub1.Title + "\",\"name\": \"" + sub1.Name + "\",\"id\": \"" + sub1.Id + "\", \"spread\": false, \"children\": [";
List Level2 = list.Where(m => m.RightLevel == 2 && m.Id.StartsWith(sub1.Id)).ToList();
if (Level2.Count > 0)
{
foreach (RightDic sub2 in Level2)
{
result += "{\"title\": \"" + sub2.Title + "\",\"name\": \"" + sub2.Name + "\",\"id\": \"" + sub2.Id + "\", \"spread\": false, \"children\": [";
List Level3 = list.Where(m => m.RightLevel == 3 && m.Id.StartsWith(sub2.Id)).ToList();
if (Level3.Count > 0)
{
foreach (RightDic sub3 in Level3)
{
result += "{\"title\": \"" + sub3.Title + "\",\"name\": \"" + sub3.Name + "\",\"id\": \"" + sub3.Id + "\", \"spread\": false, \"children\": [";
string rightString = ForOperateRight(sub3.Id);
if (!string.IsNullOrEmpty(rightString))
{
result += rightString;
}
// else
// {
// result += "{title: '基本权限', id: '" + sub3.Id + "_base'}";
// }
result += "]},";
}
result = result.TrimEnd(',');
}
else
{
string rightString = ForOperateRight(sub2.Id);
if (!string.IsNullOrEmpty(rightString))
{
result += rightString;
}
// else
// {
// result += "{title: '基本权限', id: '" + sub2.Id + "_base'}";
// }
}
result += "]},";
}
result = result.TrimEnd(',');
}
else
{
result += ForOperateRight(sub1.Id);
string rightString = ForOperateRight(sub1.Id);
if (!string.IsNullOrEmpty(rightString))
{
result += rightString;
}
// else
// {
// result += "{title: '基本权限', id: '" + sub1.Id + "_base'}";
// }
}
result += "]},";
}
result = result.TrimEnd(',');
result += "]";
return result;
}
//读取当前菜单有哪些权限
public static string ForOperateRight(string Id)
{
string result = "";
List rights = bsdb.MenuRight.Where(m => m.MenuId.StartsWith(Id)).OrderBy(m => m.MenuId).ToList();
foreach (MenuRight right in rights)
{
result += "{\"title\": \"" + right.Name + "\",\"id\": \"" + right.MenuId + "\"},";
}
RightDic rightDic = bsdb.RightDic.FirstOrDefault(m => m.Id == Id) ?? new RightDic();
if (!string.IsNullOrEmpty(rightDic.OtherRight))
{
string[] OtherRightList = rightDic.OtherRight.Split('\n');
foreach (string SubOtherRight in OtherRightList)
{
string[] SubOtherRightData = SubOtherRight.Split('_');
result += "{\"title\": \"" + SubOtherRightData[1] + "\",\"id\": \"" + Id + "_" + SubOtherRightData[0] + "\"},";
}
}
result = result.TrimEnd(',');
return result;
}
#endregion
}
}