using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web.Routing;
using BLL;
using Model;
namespace Lib
{
public class MasterPage : MainPage
{
protected override void Initialize(RequestContext requestContext)
{
base.Initialize(requestContext);
ViewBag.SoftName = "自动化仓储管理系统";
//SetMenu();
SetMenuNew();
SetNav();
}
///
/// 根据登录用的角色加载菜单信息
///
private void SetMenu()
{
StringBuilder sb = new StringBuilder();
if (IsLogin())
{
List list = new List();
IDALGerUserMenu provider = new DALGetUserMenu();
list = provider.GetList(this.LoginUserCode).ToList();
UserMenu = list;
UserGetBtn btns = new UserGetBtn();
btns.UserCode = this.LoginUserCode;
List getBtns = new List();
if (list.Count > 0)
{
foreach (ResMenu parent in list.Where(a => string.IsNullOrEmpty(a.ParentName)))
{
StringBuilder sbChild = new StringBuilder();
sbChild.AppendFormat("");
bool flag = false;
bool exists = false;
foreach (ResMenu child in list.Where(a => a.ParentName == parent.ResName))
{
flag = child.Url.Substring(0, child.Url.LastIndexOf('/')).ToLower() == this.Path.Substring(0, this.Path.LastIndexOf('/')).ToLower()
// || (!child.Children.IsNullOrEmpty() && child.Children.Exists(c => c.Url.ToLower() == this.Path.ToLower()))
;
GetBtn getBtn = new GetBtn();
List res = list.Where(a => a.ParentName == child.ResName).ToList();
if (res.Where(a => (a.ResName.IndexOf("新增") >= 0)).ToList().Count == 0) getBtn.Add = "dis"; else getBtn.Add = "";
if (res.Where(a => (a.ResName.IndexOf("编辑") >= 0)).ToList().Count == 0) getBtn.Edit = "dis"; else getBtn.Edit = "";
if (res.Where(a => (a.ResName.IndexOf("删除") >= 0)).ToList().Count == 0) getBtn.Del = "dis"; else getBtn.Del = "";
if (res.Where(a => (a.ResName.IndexOf("下单") >= 0)).ToList().Count == 0) getBtn.Send = "dis"; else getBtn.Send = "";
if (res.Where(a => (a.ResName.IndexOf("关单") >= 0)).ToList().Count == 0) getBtn.Close = "dis"; else getBtn.Close = "";
if (res.Where(a => (a.ResName.IndexOf("审核") >= 0)).ToList().Count == 0) getBtn.Audit = "dis"; else getBtn.Audit = "";
if (res.Where(a => (a.ResName.IndexOf("刷新") >= 0)).ToList().Count == 0) getBtn.Refresh = "dis"; else getBtn.Refresh = "";
if (res.Where(a => (a.ResName.IndexOf("导入") >= 0)).ToList().Count == 0) getBtn.Input = "dis"; else getBtn.Input = "";
if (res.Where(a => (a.ResName.IndexOf("导出") >= 0)).ToList().Count == 0) getBtn.Output = "dis"; else getBtn.Output = "";
if (res.Where(a => (a.ResName.IndexOf("打印") >= 0)).ToList().Count == 0) getBtn.Print = "dis"; else getBtn.Print = "";
if (res.Where(a => (a.ResName.IndexOf("分配权限") >= 0)).ToList().Count == 0) getBtn.Permission = "dis"; else getBtn.Permission = "";
if (res.Where(a => (a.ResName.IndexOf("合格") >= 0)).ToList().Count == 0) getBtn.SignYes = "dis"; else getBtn.SignYes = "";
if (res.Where(a => (a.ResName.IndexOf("不合格") >= 0)).ToList().Count == 0) getBtn.SignNo = "dis"; else getBtn.SignNo = "";
if (res.Where(a => (a.ResName.IndexOf("合格") >= 0)).ToList().Count == 0) getBtn.SignYes = "dis"; else getBtn.SignYes = "";
if (res.Where(a => (a.ResName.IndexOf("启用") >= 0)).ToList().Count == 0) getBtn.Start = "dis"; else getBtn.Start = "";
if (res.Where(a => (a.ResName.IndexOf("停用") >= 0)).ToList().Count == 0) getBtn.Stop = "dis"; else getBtn.Stop = "";
if (res.Where(a => (a.ResName.IndexOf("属性") >= 0)).ToList().Count == 0) getBtn.Property = "dis"; else getBtn.Property = "";
if (res.Where(a => (a.ResName.IndexOf("锁定") >= 0)).ToList().Count == 0) getBtn.ALock = "dis"; else getBtn.ALock = "";
if (res.Where(a => (a.ResName.IndexOf("解锁") >= 0)).ToList().Count == 0) getBtn.ULock = "dis"; else getBtn.ULock = "";
if (res.Where(a => (a.ResName.IndexOf("封存") >= 0)).ToList().Count == 0) getBtn.ALock = "dis"; else getBtn.ALock = "";
if (res.Where(a => (a.ResName.IndexOf("解封") >= 0)).ToList().Count == 0) getBtn.ULock = "dis"; else getBtn.ULock = "";
if (res.Where(a => (a.ResName.IndexOf("完成") >= 0)).ToList().Count == 0) getBtn.Complete = "dis"; else getBtn.Complete = "";
if (res.Where(a => (a.ResName.IndexOf("取消") >= 0)).ToList().Count == 0) getBtn.Cancel = "dis"; else getBtn.Cancel = "";
if (res.Where(a => (a.ResName.IndexOf("回传") >= 0)).ToList().Count == 0) getBtn.BackHaul = "dis"; else getBtn.BackHaul = "";
if (res.Where(a => (a.ResName.IndexOf("回库") >= 0)).ToList().Count == 0) getBtn.to = "dis"; else getBtn.to = "";
getBtn.PrantName = child.ResName;
getBtns.Add(getBtn);
if (flag)
{
exists = true;
}
sbChild.AppendFormat("- {2}
", flag ? "class=\"active\"" : "", string.IsNullOrEmpty(child.Url) ? "javascript:void(0)" : child.Url, child.ResName);
}
sbChild.AppendFormat("
");
sb.AppendFormat("", exists ? "active" : "");
sb.AppendFormat("");
sb.AppendFormat("", parent.CssName == null ? "icon-bookmark-empty" : parent.CssName);
sb.AppendFormat("{0}", parent.ResName);
sb.AppendFormat("", exists ? "open" : "");
sb.AppendFormat("");
sb.Append(sbChild.ToString());
sb.AppendFormat("");
}
}
btns.Btns = getBtns;
UserBtn = btns;
}
ViewBag.MenuItems = sb.ToString();
}
private void SetMenuNew()
{
StringBuilder sb = new StringBuilder();
if (IsLogin())
{
List list = new List();
IDALGerUserMenu provider = new DALGetUserMenu();
list = provider.GetList(this.LoginUserCode).ToList();
UserMenu = list;
UserGetBtn btns = new UserGetBtn();
btns.UserCode = this.LoginUserCode;
List getBtns = new List();
if (list.Count > 0)
{
foreach (ResMenu parent in list.Where(a => string.IsNullOrEmpty(a.ParentName)))
{
int i = 1;
sb.AppendFormat("");
sb.AppendFormat("- {3}
", "dt_" + parent.ResNum, "head1", parent.ResNum, parent.ResName);
sb.AppendFormat("", parent.ResNum);
bool flag = false;
bool exists = false;
foreach (ResMenu child in list.Where(a => a.ParentName == parent.ResName))
{
flag = child.Url.Substring(0, child.Url.LastIndexOf('/')).ToLower() == this.Path.Substring(0, this.Path.LastIndexOf('/')).ToLower();
GetBtn getBtn = new GetBtn();
List res = list.Where(a => a.ParentName == child.ResName).ToList();
if (res.Where(a => (a.ResName.IndexOf("新增") >= 0)).ToList().Count == 0) getBtn.Add = "dis"; else getBtn.Add = "";
if (res.Where(a => (a.ResName.IndexOf("编辑") >= 0)).ToList().Count == 0) getBtn.Edit = "dis"; else getBtn.Edit = "";
if (res.Where(a => (a.ResName.IndexOf("批量修改") >= 0)).ToList().Count == 0) getBtn.Edits = "dis"; else getBtn.Edits = "";
if (res.Where(a => (a.ResName.IndexOf("删除") >= 0)).ToList().Count == 0) getBtn.Del = "dis"; else getBtn.Del = "";
if (res.Where(a => (a.ResName.IndexOf("结批") >= 0)).ToList().Count == 0) getBtn.jiePi = "dis"; else getBtn.jiePi = "";
if (res.Where(a => (a.ResName.IndexOf("执行") >= 0)).ToList().Count == 0) getBtn.run = "dis"; else getBtn.run = "";
if (res.Where(a => (a.ResName.IndexOf("出库") >= 0)).ToList().Count == 0) getBtn.Out = "dis"; else getBtn.Out = "";
if (res.Where(a => (a.ResName.IndexOf("组盘") >= 0)).ToList().Count == 0) getBtn.Send = "dis"; else getBtn.Send = "";
//if (res.Where(a => (a.ResName.IndexOf("下单") >= 0)).ToList().Count == 0) getBtn.Send = "dis"; else getBtn.Send = "";
if (res.Where(a => (a.ResName.IndexOf("关单") >= 0)).ToList().Count == 0) getBtn.Close = "dis"; else getBtn.Close = "";
if (res.Where(a => (a.ResName.IndexOf("审核") >= 0)).ToList().Count == 0) getBtn.Audit = "dis"; else getBtn.Audit = "";
if (res.Where(a => (a.ResName.IndexOf("刷新") >= 0)).ToList().Count == 0) getBtn.Refresh = "dis"; else getBtn.Refresh = "";
if (res.Where(a => (a.ResName.IndexOf("导入") >= 0)).ToList().Count == 0) getBtn.Input = "dis"; else getBtn.Input = "";
if (res.Where(a => (a.ResName.IndexOf("导出") >= 0)).ToList().Count == 0) getBtn.Output = "dis"; else getBtn.Output = "";
if (res.Where(a => (a.ResName.IndexOf("打印") >= 0)).ToList().Count == 0) getBtn.Print = "dis"; else getBtn.Print = "";
if (res.Where(a => (a.ResName.IndexOf("分配权限") >= 0)).ToList().Count == 0) getBtn.Permission = "dis"; else getBtn.Permission = "";
if (res.Where(a => (a.ResName.IndexOf("重置") >= 0)).ToList().Count == 0) getBtn.Reset = "dis"; else getBtn.Reset = "";
if (res.Where(a => (a.ResName.IndexOf("盘点出库") >= 0)).ToList().Count == 0) getBtn.Stocktaking = "dis"; else getBtn.Stocktaking = "";
if (res.Where(a => (a.ResName.IndexOf("自动出库") >= 0)).ToList().Count == 0) getBtn.Autotaking = "dis"; else getBtn.Autotaking = "";
if (res.Where(a => (a.ResName.IndexOf("生成任务") >= 0)).ToList().Count == 0) getBtn.Buildtask = "dis"; else getBtn.Buildtask = "";
if (res.Where(a => (a.ResName.IndexOf("调整库存") >= 0)).ToList().Count == 0) getBtn.Setstock = "dis"; else getBtn.Setstock = "";
if (res.Where(a => (a.ResName.IndexOf("合格") >= 0)).ToList().Count == 0) getBtn.SignYes = "dis"; else getBtn.SignYes = "";
if (res.Where(a => (a.ResName.IndexOf("不合格") >= 0)).ToList().Count == 0) getBtn.SignNo = "dis"; else getBtn.SignNo = "";
if (res.Where(a => (a.ResName.IndexOf("合格") >= 0)).ToList().Count == 0) getBtn.SignYes = "dis"; else getBtn.SignYes = "";
if (res.Where(a => (a.ResName.IndexOf("启用") >= 0)).ToList().Count == 0) getBtn.Start = "dis"; else getBtn.Start = "";
if (res.Where(a => (a.ResName.IndexOf("停用") >= 0)).ToList().Count == 0) getBtn.Stop = "dis"; else getBtn.Stop = "";
if (res.Where(a => (a.ResName.IndexOf("属性") >= 0)).ToList().Count == 0) getBtn.Property = "dis"; else getBtn.Property = "";
if (res.Where(a => (a.ResName.IndexOf("锁定") >= 0)).ToList().Count == 0) getBtn.ALock = "dis"; else getBtn.ALock = "";
if (res.Where(a => (a.ResName.IndexOf("解锁") >= 0)).ToList().Count == 0) getBtn.ULock = "dis"; else getBtn.ULock = "";
if (res.Where(a => (a.ResName.IndexOf("封存") >= 0)).ToList().Count == 0) getBtn.ALock = "dis"; else getBtn.ALock = "";
if (res.Where(a => (a.ResName.IndexOf("解封") >= 0)).ToList().Count == 0) getBtn.ULock = "dis"; else getBtn.ULock = "";
if (res.Where(a => (a.ResName.IndexOf("处理") >= 0)).ToList().Count == 0) getBtn.Dispose = "dis"; else getBtn.Dispose = "";
if (res.Where(a => (a.ResName.IndexOf("完成") >= 0)).ToList().Count == 0) getBtn.Complete = "dis"; else getBtn.Complete = "";
if (res.Where(a => (a.ResName.IndexOf("取消") >= 0)).ToList().Count == 0) getBtn.Cancel = "dis"; else getBtn.Cancel = "";
if (res.Where(a => (a.ResName.IndexOf("回传") >= 0)).ToList().Count == 0) getBtn.BackHaul = "dis"; else getBtn.BackHaul = "";
if (res.Where(a => (a.ResName.IndexOf("详情") >= 0)).ToList().Count == 0) getBtn.xiangqing = "dis"; else getBtn.xiangqing = "";
getBtn.PrantName = child.ResName;
getBtns.Add(getBtn);
if (flag)
{
exists = true;
}
sb.AppendFormat("- {1}
", "'" + child.Url + "','" + child.ResName + "'", child.ResName);
}
sb.AppendFormat("
");
sb.AppendFormat("
");
i++;
}
}
btns.Btns = getBtns;
UserBtn = btns;
}
ViewBag.MenuItems = sb.ToString();
}
///
/// 设置导航信息
///
private void SetNav()
{
StringBuilder sb = new StringBuilder();
sb.Append("");
sb.Append("- ");
sb.Append("");
sb.Append("首页");
sb.Append("");
sb.Append("
");
if (IsLogin())
{
List list = new List();
if (UserMenu == null)
{
IDALGerUserMenu provider = new DALGetUserMenu();
list = provider.GetList(this.LoginUserCode).ToList();
UserMenu = list;
}
else
list = UserMenu;
if (list.Count > 0)
{
ResMenu item = list.SingleOrDefault(a => (a.Url != null && a.Url.ToLower() == this.Path.ToLower()));
List listResult = new List();
if (item != null)
{
ViewBag.ResMenuName = item.ResName;
List getBtns = UserBtn.Btns.Where(a => a.PrantName == item.ResName).ToList();
ViewBag.Btns = getBtns.Count > 0 ? getBtns[0] : null;
//ViewBag.Btns.Add;
}
while (item != null)
{
listResult.Insert(0, item);
if (string.IsNullOrEmpty(item.ParentName))
{
break;
}
else
{
if (list.Exists(a => a.ResNum == item.ParentName))
{
item = list.First(a => a.ResNum == item.ParentName);
}
else
{
break;
}
}
}
for (int i = 0; i < listResult.Count; i++)
{
if (i != listResult.Count - 1)
{
sb.Append("- ");
sb.AppendFormat("{1}", string.IsNullOrEmpty(listResult[i].Url) ? "javascript:void(0)" : listResult[i].Url, listResult[i].ResName);
sb.Append("");
sb.Append("
");
}
else
{
sb.Append("- ");
sb.AppendFormat("{0}", listResult[i].ResName);
sb.Append("
");
}
}
}
}
sb.Append("
");
ViewBag.NavMenu = sb.ToString();
}
}
}