using System.Collections.Generic;
using System.Linq;
using MySystem.Models.Bs;
using System.Data;
namespace MySystem
{
///
/// 基础功能方法
///
public class BaseClass
{
public Models.Bs.WebCMSEntities bsdb = new Models.Bs.WebCMSEntities();
#region
public 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.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.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.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 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
}
}