Ejemplo n.º 1
0
        public static SysResource_CE ToCE(SysResourceEntity item)
        {
            SysResource_CE target = new SysResource_CE();

            target.ID         = item.ID;
            target.ResNum     = item.ResNum;
            target.ResName    = item.ResName;
            target.ParentNum  = item.ParentNum;
            target.Depth      = item.Depth;
            target.ParentPath = item.ParentPath;
            target.ChildCount = item.ChildCount;
            target.Sort       = item.Sort;
            target.IsHide     = item.IsHide;
            target.IsDelete   = item.IsDelete;
            target.Url        = item.Url;
            target.CssName    = item.CssName;
            target.CreateTime = item.CreateTime;
            target.Depart     = item.Depart;
            target.ResType    = item.ResType;
            target.UpdateTime = item.UpdateTime;
            target.CreateUser = item.CreateUser;
            target.UpdateUser = item.UpdateUser;
            target.CreateIp   = item.CreateIp;
            target.UpdateIp   = item.UpdateIp;
            target.Remark     = item.Remark;
            return(target);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 查询资源分页
        /// </summary>
        /// <param name="entity"></param>
        /// <param name="pageInfo"></param>
        /// <returns></returns>
        public List <SysResourceEntity> GetList(SysResourceEntity entity, ref PageInfo pageInfo)
        {
            List <SysResourceEntity> list = GetList();

            if (list.IsNullOrEmpty())
            {
                return(list);
            }

            int rowCount = 0;
            List <SysResourceEntity> listResult = list;

            if (!entity.ResNum.IsEmpty())
            {
                listResult = listResult.Where(a => a.ResNum.Contains(entity.ResNum)).ToList();
            }
            if (!entity.ResName.IsEmpty())
            {
                listResult = listResult.Where(a => a.ResName.Contains(entity.ResName)).ToList();
            }
            if (!entity.Url.IsEmpty())
            {
                listResult = listResult.Where(a => a.Url.Contains(entity.Url)).ToList();
            }
            rowCount          = listResult.Count();
            pageInfo.RowCount = rowCount;

            return(listResult.Skip((pageInfo.PageIndex - 1) * pageInfo.PageSize).Take(pageInfo.PageSize).ToList());
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 新增菜单项或者操作项
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        public int AddResource(SysResourceEntity entity)
        {
            entity.ThrowIfNull("添加资源信息对象为空");
            //父类的处理
            if (!entity.ParentNum.IsEmpty())
            {
                SysResourceEntity parentRes = GetResource(entity.ParentNum);
                if (parentRes.IsNotNull())
                {
                    parentRes.ChildCount++;
                    entity.Depth = parentRes.Depth + 1;
                    parentRes.IncludeChildCount(true)
                    .Where <SysResourceEntity>("ResNum", ECondition.Eth);
                    this.SysResource.Update(parentRes);
                }
            }
            entity.ResNum = entity.ResNum.IsNullOrEmpty() ? new SequenceProvider(this.CompanyID).GetSequence(typeof(SysResourceEntity)) : entity.ResNum;
            entity.IncludeAll();
            int line = this.SysResource.Add(entity);

            if (line > 0)
            {
                CacheHelper.Remove(CacheKey.JOOSHOW_SYSRESOURCE_CACHE);
            }
            return(line);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 获得所有资源
        /// </summary>
        /// <returns></returns>
        public List <SysResourceEntity> GetList()
        {
            List <SysResourceEntity> list = CacheHelper.Get(CacheKey.JOOSHOW_SYSRESOURCE_CACHE) as List <SysResourceEntity>;

            if (!list.IsNullOrEmpty())
            {
                return(list);
            }
            SysResourceEntity entity = new SysResourceEntity();

            entity.IncludeAll();
            entity.Where(a => a.IsDelete == (int)EIsDelete.NotDelete);
            list = this.SysResource.GetList(entity);
            if (!list.IsNullOrEmpty())
            {
                list.ForEach(a =>
                {
                    a.ResouceType = EnumHelper.GetEnumDesc <EResourceType>(a.ResType);
                    a.ParentName  = a.ParentNum.Do((string parentNum) =>
                    {
                        SysResourceEntity item = list.SingleOrDefault(b => b.ResNum == parentNum);
                        return(item.IsNotNull() ? item.ResName : "");
                    }, "");
                });
                CacheHelper.Insert(CacheKey.JOOSHOW_SYSRESOURCE_CACHE, list);
            }
            return(list);
        }
Ejemplo n.º 5
0
        public ActionResult AddMenu([ModelBinder(typeof(JsonBinder <SysResourceEntity>))] SysResourceEntity entity)
        {
            SysResourceProvider provider = new SysResourceProvider();

            entity.UpdateTime = DateTime.Now;
            entity.ParentPath = "";
            entity.CreateUser = this.LoginUser.UserCode;
            entity.UpdateUser = this.LoginUser.UserCode;
            entity.CreateIp   = "";
            entity.UpdateIp   = "";
            entity.Remark     = "";
            entity.IsDelete   = (int)EIsDelete.NotDelete;
            entity.IsHide     = (int)EBool.No;
            int line = 0;

            if (entity.ResNum.IsEmpty())
            {
                entity.CreateTime = DateTime.Now;
                line = provider.AddResource(entity);
            }
            else
            {
                line = provider.UpdateResource(entity);
            }
            if (line > 0)
            {
                this.ReturnJson.AddProperty("d", "success");
            }
            else
            {
                this.ReturnJson.AddProperty("d", "");
            }
            return(Content(this.ReturnJson.ToString()));
        }
Ejemplo n.º 6
0
        /// <summary>
        /// 查询分页
        /// </summary>
        /// <returns></returns>
        public ActionResult GetList()
        {
            int    pageIndex = WebUtil.GetFormValue <int>("pageIndex", 1);
            int    pageSize  = WebUtil.GetFormValue <int>("pageSize", 15);
            string ResNum    = WebUtil.GetFormValue <string>("ResNum", string.Empty);
            string ResName   = WebUtil.GetFormValue <string>("ResName", string.Empty);
            string Url       = WebUtil.GetFormValue <string>("Url", string.Empty);
            string CompanyID = WebUtil.GetFormValue <string>("CompanyID", string.Empty);

            PageInfo pageInfo = new PageInfo()
            {
                PageIndex = pageIndex, PageSize = pageSize
            };
            SysResourceProvider provider = new SysResourceProvider(CompanyID);
            SysResourceEntity   entity   = new SysResourceEntity();

            entity.ResNum  = ResNum;
            entity.ResName = ResName;
            entity.Url     = Url;

            List <SysResourceEntity>           listResult = provider.GetList(entity, ref pageInfo);
            DataListResult <SysResourceEntity> result     = new DataListResult <SysResourceEntity>()
            {
                Code     = (int)EResponseCode.Success,
                PageInfo = pageInfo,
                Result   = listResult,
                Message  = "响应成功"
            };

            return(Content(JsonHelper.SerializeObject(result)));
        }
Ejemplo n.º 7
0
        /// <summary>
        /// 给某个角色分配权限
        /// </summary>
        /// <param name="roleNum"></param>
        /// <param name="resItems"></param>
        /// <returns></returns>
        public int AllotPower(string roleNum, List <string> resItems)
        {
            using (TransactionScope ts = new TransactionScope())
            {
                int line = 0;
                if (!resItems.IsNullOrEmpty())
                {
                    List <string>            listInfo   = new List <string>();
                    List <SysResourceEntity> ListSource = new SysResourceProvider(this.CompanyID).GetList();
                    ListSource = ListSource.IsNull() ? new List <SysResourceEntity>() : ListSource;

                    resItems.ForEach(a =>
                    {
                        SysResourceEntity res = ListSource.FirstOrDefault(b => b.ResNum == a);
                        if (res != null && res.ParentNum.IsNotEmpty())
                        {
                            SysResourceEntity parent = ListSource.FirstOrDefault(b => b.ResNum == res.ParentNum);
                            listInfo.Add(parent.ResNum);
                        }
                        listInfo.Add(a);
                    });

                    SysRelationEntity entity = new SysRelationEntity();
                    entity.Where(a => a.RoleNum == roleNum);
                    line = this.SysRelation.Delete(entity);

                    SysResourceProvider provider = new SysResourceProvider(this.CompanyID);

                    List <SysRelationEntity> list = new List <SysRelationEntity>();
                    foreach (string resNum in listInfo)
                    {
                        SysResourceEntity resource = provider.GetResource(resNum);
                        short             ResType  = resource != null ? resource.ResType : (short)EResourceType.Page;
                        entity = new SysRelationEntity()
                        {
                            RoleNum = roleNum, ResNum = resNum, ResType = ResType, CompanyID = this.CompanyID
                        };
                        entity.SnNum = entity.SnNum.IsEmpty() ? ConvertHelper.NewGuid() : entity.SnNum;
                        entity.IncludeAll();
                        list.Add(entity);
                    }
                    line += this.SysRelation.Add(list);
                }
                ts.Complete();
                if (line > 0)
                {
                    CacheHelper.Remove(string.Format(CacheKey.JOOSHOW_ROLEPOWER_CACHE, roleNum));
                    CacheHelper.Remove(CacheKey.JOOSHOW_ALLOTPOWER_CACHE);
                }
                return(line);
            }
        }
Ejemplo n.º 8
0
        /// <summary>
        /// 删除资源 逻辑删除 不是物理删除
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public int DeleteResource(string ResNum)
        {
            SysResourceEntity entity = new SysResourceEntity();

            entity.IsDelete = (int)EIsDelete.Deleted;
            entity.IncludeIsDelete(true);
            entity.Where(a => a.ResNum == ResNum);
            int line = this.SysResource.Update(entity);

            if (line > 0)
            {
                CacheHelper.Remove(CacheKey.JOOSHOW_SYSRESOURCE_CACHE);
            }
            return(line);
        }
Ejemplo n.º 9
0
        /// <summary>
        /// 查询获取父类节点
        /// </summary>
        /// <param name="resNum"></param>
        /// <returns></returns>
        public SysResourceEntity GetParentRes(string resNum)
        {
            List <SysResourceEntity> listSource = GetList();

            if (listSource.IsNullOrEmpty())
            {
                return(null);
            }
            SysResourceEntity entity = listSource.SingleOrDefault(a => a.ResNum == resNum);

            if (entity.IsNull())
            {
                return(null);
            }
            string parentNum = entity.ParentNum;

            if (!parentNum.IsEmpty())
            {
                return(listSource.SingleOrDefault(a => a.ResNum == parentNum));
            }
            return(null);
        }
Ejemplo n.º 10
0
        /// <summary>
        /// 添加菜单
        /// </summary>
        /// <returns></returns>
        public ActionResult AddMenu()
        {
            string resNum = WebUtil.GetQueryStringValue <string>("resNum");

            if (resNum.IsEmpty())
            {
                ViewBag.RoleList = BaseHelper.GetParentMenu(string.Empty);
                SysResourceEntity entity = new SysResourceEntity();
                ViewBag.Menu         = entity;
                ViewBag.ResourceType = EnumHelper.GetOptions <EResourceType>(EResourceType.Page, "请选择菜单类型");
                return(View());
            }
            else
            {
                SysResourceProvider provider = new SysResourceProvider();
                SysResourceEntity   entity   = provider.GetResource(resNum);
                entity               = entity == null ? new SysResourceEntity() : entity;
                ViewBag.RoleList     = BaseHelper.GetParentMenu(entity.ParentNum);
                ViewBag.Menu         = entity;
                ViewBag.ResourceType = EnumHelper.GetOptions <EResourceType>(entity.ResType, "请选择菜单类型");
                return(View());
            }
        }
Ejemplo n.º 11
0
        /// <summary>
        /// 给某个角色分配权限
        /// </summary>
        /// <param name="roleNum"></param>
        /// <param name="resItems"></param>
        /// <returns></returns>
        public int AllotPower(string roleNum, List <string> resItems)
        {
            using (TransactionScope ts = new TransactionScope())
            {
                int line = 0;
                if (!resItems.IsNullOrEmpty())
                {
                    SysRelationEntity entity = new SysRelationEntity();
                    entity.Where(a => a.RoleNum == roleNum);
                    line = this.SysRelation.Delete(entity);

                    SysResourceProvider provider = new SysResourceProvider();

                    List <SysRelationEntity> list = new List <SysRelationEntity>();
                    foreach (string resNum in resItems)
                    {
                        SysResourceEntity resource = provider.GetResource(resNum);
                        short             ResType  = resource != null ? resource.ResType : (short)EResourceType.Page;
                        entity = new SysRelationEntity()
                        {
                            RoleNum = roleNum, ResNum = resNum, ResType = ResType
                        };
                        entity.IncludeAll();
                        list.Add(entity);
                    }
                    line += this.SysRelation.Add(list);
                }
                ts.Complete();
                if (line > 0)
                {
                    CacheHelper.Remove(string.Format(CacheKey.JOOSHOW_ROLEPOWER_CACHE, roleNum));
                    CacheHelper.Remove(CacheKey.JOOSHOW_ALLOTPOWER_CACHE);
                }
                return(line);
            }
        }
Ejemplo n.º 12
0
        /// <summary>
        /// 修改资源信息
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        public int UpdateResource(SysResourceEntity entity)
        {
            entity.IncludeResName(true)
            .IncludeSort(true)
            .IncludeUrl(true)
            .IncludeUpdateIp(true)
            .IncludeUpdateTime(true)
            .IncludeUpdateUser(true)
            .IncludeRemark(true)
            .IncludeDepart(true)
            .IncludeResType(true)
            .IncludeCssName(true)
            .IncludeDepart(true)
            .IncludeResType(true)
            .IncludeParentNum(true)
            .Where <SysResourceEntity>("ResNum", ECondition.Eth);
            int line = this.SysResource.Update(entity);

            if (line > 0)
            {
                CacheHelper.Remove(CacheKey.JOOSHOW_SYSRESOURCE_CACHE);
            }
            return(line);
        }
Ejemplo n.º 13
0
        ///// <summary>
        ///// 设置导航信息
        ///// </summary>
        private void SetNav()
        {
            //StringBuilder sb = new StringBuilder();
            //sb.Append("<ul class=\"breadcrumb\">");
            //sb.Append("<li>");
            //sb.Append("<i class=\"icon-home\"></i>");
            //sb.Append("<a href=\"/Home/Welcome\">首页</a>");
            //sb.Append("<i class=\"icon-angle-right\"></i>");
            //sb.Append("</li>");
            //if (IsLogin() && !this.LoginUser.RoleNum.IsEmpty())
            //{
            //    PowerProvider provider = new PowerProvider();
            //    SysResourceProvider SysResourceProvider = new SysResourceProvider();
            //    List<SysResourceEntity> listSource = SysResourceProvider.GetList();
            //    List<SysResourceEntity> list = provider.GetRoleResource(this.LoginUser.RoleNum);
            //    if (!list.IsNullOrEmpty())
            //    {
            //        SysResourceEntity item = list.SingleOrDefault(a => a.Url.ToLower() == this.Path.ToLower());
            //        List<SysResourceEntity> listResult = new List<SysResourceEntity>();
            //        while (item != null)
            //        {
            //            listResult.Insert(0, item);

            //            if (item.ParentNum.IsEmpty())
            //            {
            //                break;
            //            }
            //            else
            //            {
            //                if (listSource.Exists(a => a.ResNum == item.ParentNum))
            //                {
            //                    item = listSource.First(a => a.ResNum == item.ParentNum);
            //                }
            //                else
            //                {
            //                    break;
            //                }
            //            }
            //        }
            //        for (int i = 0; i < listResult.Count; i++)
            //        {
            //            if (i != listResult.Count - 1)
            //            {
            //                sb.Append("<li>");
            //                sb.AppendFormat("<a href=\"{0}\">{1}</a>", listResult[i].Url.IsEmpty() ? "javascript:void(0)" : listResult[i].Url, listResult[i].ResName);
            //                sb.Append("<i class=\"icon-angle-right\"></i>");
            //                sb.Append("</li>");
            //            }
            //            else
            //            {
            //                sb.Append("<li>");
            //                sb.AppendFormat("<a href=\"javascript:void(0)\">{0}</a>", listResult[i].ResName);
            //                sb.Append("</li>");
            //            }
            //        }
            //    }
            //}
            //sb.Append("</ul>");


            StringBuilder sb = new StringBuilder();

            if (IsLogin() && !this.LoginUser.RoleNum.IsEmpty())
            {
                List <SysResourceEntity> listSource = CacheHelper.Get(SessionKey.SESSION_MENU_RESOURCE + this.LoginUser.RoleNum) as List <SysResourceEntity>;
                if (listSource.IsNullOrEmpty())
                {
                    string     ApiName = UserApiName.UserApiName_GetPower;
                    ITopClient client  = new TopClientDefault();
                    Dictionary <string, string> dic = new Dictionary <string, string>();
                    dic.Add("CompanyID", this.CompanyID);
                    dic.Add("RoleNum", this.LoginUser.RoleNum);
                    string result = client.Execute(ApiName, dic);
                    DataResult <List <SysResourceEntity> > dataResult = JsonConvert.DeserializeObject <DataResult <List <SysResourceEntity> > >(result);
                    listSource = dataResult.Result;

                    if (!listSource.IsNullOrEmpty())
                    {
                        CacheHelper.Insert(SessionKey.SESSION_MENU_RESOURCE + this.LoginUser.RoleNum, listSource, null, DateTime.Now.AddMinutes(30));
                    }
                }

                sb.Append("<ul class='breadcrumb'>");
                sb.Append("<li>");
                sb.Append("<i class='icon-home'></i>");
                sb.Append("<a href='/Home/Desktop'>首页</a>");
                sb.Append("<i class='icon-angle-right'></i>");
                sb.Append("</li>");


                if (!listSource.IsNullOrEmpty())
                {
                    string path = this.Path.ToLower();

                    SysResourceEntity        item       = listSource.SingleOrDefault(a => a.Url.ToLower() == path);
                    List <SysResourceEntity> listResult = new List <SysResourceEntity>();
                    while (item != null)
                    {
                        listResult.Insert(0, item);
                        if (item.ParentNum.IsEmpty())
                        {
                            break;
                        }
                        else
                        {
                            if (listSource.Exists(a => a.ResNum == item.ParentNum))
                            {
                                item = listSource.First(a => a.ResNum == item.ParentNum);
                            }
                            else
                            {
                                break;
                            }
                        }
                    }

                    for (int i = 0; i < listResult.Count; i++)
                    {
                        if (i != listResult.Count - 1)
                        {
                            sb.Append("<li>");
                            sb.AppendFormat("<a href=\"{0}\">{1}</a>", listResult[i].Url.IsEmpty() ? "javascript:void(0)" : listResult[i].Url, listResult[i].ResName);
                            sb.Append("<i class=\"icon-angle-right\"></i>");
                            sb.Append("</li>");
                        }
                        else
                        {
                            sb.Append("<li>");
                            sb.AppendFormat("<a href=\"javascript:void(0)\">{0}</a>", listResult[i].ResName);
                            sb.Append("</li>");
                        }
                    }
                }
                sb.Append("</ul>");
            }
            ViewBag.NavMenu = sb.ToString();
        }
Ejemplo n.º 14
0
        ///// <summary>
        ///// 加载资源文件包括SEO文件关键字 CSS JS
        ///// </summary>
        //private void LoadResource()
        //{
        //    PageEntity pageEntity = ResourceManager.GetPageEntityByPath(this.RequestPath);
        //    if (!pageEntity.IsNull())
        //    {
        //        if (!pageEntity.SeoEntity.IsNull())
        //        {
        //            Title = pageEntity.SeoEntity.Title;
        //            Keyword = pageEntity.SeoEntity.KeyWords;
        //            Description = pageEntity.SeoEntity.Description;
        //        }
        //        string cssFile = string.Empty;
        //        string jsFile = string.Empty; ;
        //        if (!pageEntity.FileGroupList.IsNullOrEmpty())
        //        {
        //            foreach (FileGroup fileGroup in pageEntity.FileGroupList)
        //            {
        //                if (!fileGroup.IsNull() && !fileGroup.FileList.IsNullOrEmpty())
        //                {
        //                    foreach (FileEntity fileEntity in fileGroup.FileList)
        //                    {
        //                        if (fileEntity.FileType == EFileType.Css)
        //                        {
        //                            if (fileEntity.Browser.IsEmpty())
        //                            {
        //                                cssFile += "<link href=\"" + fileEntity.FilePath + "\" rel=\"stylesheet\" type=\"text/css\" />";
        //                            }
        //                            else
        //                            {
        //                                if (fileEntity.Browser.ToLower() == "ie6")
        //                                {
        //                                    cssFile += "<!--[if IE 6]><link rel=\"stylesheet\" href=\"" + fileEntity.FilePath + "\" /><![endif]-->";
        //                                }
        //                                else if (fileEntity.Browser.ToLower() == "ie7")
        //                                {
        //                                    cssFile += "<!--[if IE 7]><link rel=\"stylesheet\" href=\"" + fileEntity.FilePath + "\" /><![endif]-->";
        //                                }
        //                                else if (fileEntity.Browser.ToLower() == "ie8")
        //                                {
        //                                    cssFile += "<!--[if IE 8]><link rel=\"stylesheet\" href=\"" + fileEntity.FilePath + "\" /><![endif]-->";
        //                                }
        //                                else if (fileEntity.Browser.ToLower() == "ie9")
        //                                {
        //                                    cssFile += "<!--[if IE 9]><link rel=\"stylesheet\" href=\"" + fileEntity.FilePath + "\" /><![endif]-->";
        //                                }
        //                            }
        //                        }
        //                        if (fileEntity.FileType == EFileType.Js)
        //                        {
        //                            jsFile += "<script type=\"text/javascript\" src=\"" + fileEntity.FilePath + "?t="+Guid.NewGuid().ToString()+"\"></script>";
        //                        }
        //                    }
        //                }
        //            }
        //        }
        //        CssFile = cssFile;
        //        JsFile = jsFile;
        //    }

        //    ViewBag.CssFile = CssFile;
        //    ViewBag.JsFile = JsFile;
        //    ViewBag.Title = Title;
        //    ViewBag.Keyword = Keyword;
        //    ViewBag.Description = Description;
        //    ViewBag.CurrentLoginUser = this.LoginUser;
        //}


        /// <summary>
        /// 根据登录用的角色加载菜单信息
        /// </summary>
        private void SetMenu()
        {
            StringBuilder sb = new StringBuilder();

            if (IsLogin() && !this.LoginUser.RoleNum.IsEmpty())
            {
                List <SysResourceEntity> listSource = CacheHelper.Get(SessionKey.SESSION_MENU_RESOURCE + this.LoginUser.RoleNum) as List <SysResourceEntity>;
                listSource = null;
                if (listSource.IsNullOrEmpty())
                {
                    string     ApiName = UserApiName.UserApiName_GetPower;
                    ITopClient client  = new TopClientDefault();
                    Dictionary <string, string> dic = new Dictionary <string, string>();
                    dic.Add("CompanyID", this.CompanyID);
                    dic.Add("RoleNum", this.LoginUser.RoleNum);
                    string result = client.Execute(ApiName, dic);
                    DataResult <List <SysResourceEntity> > dataResult = JsonConvert.DeserializeObject <DataResult <List <SysResourceEntity> > >(result);
                    listSource = dataResult.Result;

                    if (!listSource.IsNullOrEmpty())
                    {
                        CacheHelper.Insert(SessionKey.SESSION_MENU_RESOURCE + this.LoginUser.RoleNum, listSource, null, DateTime.Now.AddMinutes(30));
                    }
                }

                if (!listSource.IsNullOrEmpty())
                {
                    string            path    = this.Path.ToLower();
                    SysResourceEntity current = listSource.FirstOrDefault(a => a.Url.ToLower() == path);
                    SysResourceEntity source  = null;
                    if (current != null)
                    {
                        source = listSource.FirstOrDefault(a => a.ResNum == current.ParentNum);
                    }
                    foreach (SysResourceEntity parent in listSource.Where(a => a.ParentNum.IsEmpty()))
                    {
                        bool isExists = false;

                        StringBuilder sbChild = new StringBuilder();
                        if (listSource.Exists(a => a.ParentNum == parent.ParentNum))
                        {
                            StringBuilder sbLi = new StringBuilder();
                            foreach (SysResourceEntity child in listSource.Where(a => a.ParentNum == parent.ResNum))
                            {
                                if (child.Url.ToLower() == path || (source != null && child.Url.ToLower() == source.Url.ToLower()))
                                {
                                    isExists = true;
                                }
                                sbLi.AppendFormat("<li {2}><a href=\"{0}\">{1}</a></li>", child.Url, child.ResName, (child.Url.ToLower() == path || (source != null && child.Url.ToLower() == source.Url.ToLower())) ? "class='active'" : "");
                            }
                            sbChild.AppendFormat("<ul class=\"sub\"{0}>", isExists ? "style='display: block;'" : "");
                            sbChild.Append(sbLi.ToString());
                            sbChild.Append("</ul>");
                        }

                        StringBuilder sbContent = new StringBuilder();
                        sbContent.Append("<a href=\"javascript:void(0)\">");
                        sbContent.AppendFormat("<i class=\"{0}\"></i>", parent.CssName.IsEmpty() ? "icon-bookmark-empty":parent.CssName);
                        sbContent.AppendFormat("<span class=\"title\">{0}</span>", parent.ResName);
                        sbContent.AppendFormat("<span class=\"arrow {0}\"></span>", isExists ? "open" : "");
                        sbContent.Append("</a>");

                        sbContent.Append(sbChild.ToString());

                        sb.AppendFormat("<li class=\"has-sub {0}\">", isExists ? "open active" : "");
                        sb.Append(sbContent.ToString());
                        sb.Append("</li>");
                    }
                }
            }
            ViewBag.MenuItems = sb.ToString();
        }
Ejemplo n.º 15
0
        /// <summary>
        /// 获得权限分配
        /// </summary>
        /// <param name="roleNum"></param>
        /// <returns></returns>
        public Params <List <SysResourceEntity>, List <SysResourceEntity>, List <SysResourceEntity> > GetRole(string roleNum)
        {
            Params <List <SysResourceEntity>, List <SysResourceEntity>, List <SysResourceEntity> > param = new Params <List <SysResourceEntity>, List <SysResourceEntity>, List <SysResourceEntity> >();
            SysResourceProvider provider = new SysResourceProvider();

            param.Item1 = provider.GetList();
            param.Item2 = GetRoleResource(roleNum);

            param.Item1 = param.Item1.IsNull() ? new List <SysResourceEntity>() : param.Item1;
            param.Item2 = param.Item2.IsNull() ? new List <SysResourceEntity>() : param.Item2;
            param.Item3 = param.Item1.Where(a => !param.Item2.Exists(b => b.ResNum == a.ResNum)).ToList();
            param.Item3 = param.Item3.IsNull() ? new List <SysResourceEntity>() : param.Item3;
            List <SysResourceEntity> listTemp = new List <SysResourceEntity>();

            foreach (SysResourceEntity item in param.Item2)
            {
                if (!item.ParentNum.IsEmpty() && !param.Item2.Exists(a => a.ResNum == item.ParentNum))
                {
                    SysResourceEntity entity = param.Item1.First(a => a.ResNum == item.ParentNum);
                    if (!listTemp.Exists(a => a.ResNum == entity.ResNum))
                    {
                        listTemp.Add(entity);
                    }

                    if (!entity.ParentNum.IsEmpty() && !param.Item2.Exists(a => a.ResNum == entity.ParentNum))
                    {
                        entity = param.Item1.First(a => a.ResNum == entity.ParentNum);
                        if (!listTemp.Exists(a => a.ResNum == entity.ResNum))
                        {
                            listTemp.Add(entity);
                        }
                    }
                }
            }
            param.Item2.AddRange(listTemp);

            listTemp = new List <SysResourceEntity>();
            if (!param.Item3.IsNullOrEmpty())
            {
                foreach (SysResourceEntity item in param.Item3)
                {
                    if (!item.ParentNum.IsEmpty() && !param.Item3.Exists(a => a.ResNum == item.ParentNum))
                    {
                        SysResourceEntity entity = param.Item1.First(a => a.ResNum == item.ParentNum);
                        if (!listTemp.Exists(a => a.ResNum == entity.ResNum))
                        {
                            listTemp.Add(entity);
                        }

                        if (!entity.ParentNum.IsEmpty() && !param.Item3.Exists(a => a.ResNum == entity.ParentNum))
                        {
                            entity = param.Item1.First(a => a.ResNum == entity.ParentNum);
                            if (!listTemp.Exists(a => a.ResNum == entity.ResNum))
                            {
                                listTemp.Add(entity);
                            }
                        }
                    }
                }
            }
            param.Item3.AddRange(listTemp);

            return(param);
        }
Ejemplo n.º 16
0
        /// <summary>
        /// 设置导航信息
        /// </summary>
        private void SetNav()
        {
            StringBuilder sb = new StringBuilder();

            sb.Append("<ul class=\"breadcrumb\">");
            sb.Append("<li>");
            sb.Append("<i class=\"icon-home\"></i>");
            sb.Append("<a href=\"/Home/Welcome\">首页</a>");
            sb.Append("<i class=\"icon-angle-right\"></i>");
            sb.Append("</li>");
            if (IsLogin() && !this.LoginUser.RoleNum.IsEmpty())
            {
                PowerProvider            provider            = new PowerProvider();
                SysResourceProvider      SysResourceProvider = new SysResourceProvider();
                List <SysResourceEntity> listSource          = SysResourceProvider.GetList();
                List <SysResourceEntity> list = provider.GetRoleResource(this.LoginUser.RoleNum);
                if (!list.IsNullOrEmpty())
                {
                    SysResourceEntity        item       = list.SingleOrDefault(a => a.Url.ToLower() == this.Path.ToLower());
                    List <SysResourceEntity> listResult = new List <SysResourceEntity>();
                    while (item != null)
                    {
                        listResult.Insert(0, item);

                        if (item.ParentNum.IsEmpty())
                        {
                            break;
                        }
                        else
                        {
                            if (listSource.Exists(a => a.ResNum == item.ParentNum))
                            {
                                item = listSource.First(a => a.ResNum == item.ParentNum);
                            }
                            else
                            {
                                break;
                            }
                        }
                    }
                    for (int i = 0; i < listResult.Count; i++)
                    {
                        if (i != listResult.Count - 1)
                        {
                            sb.Append("<li>");
                            sb.AppendFormat("<a href=\"{0}\">{1}</a>", listResult[i].Url.IsEmpty() ? "javascript:void(0)" : listResult[i].Url, listResult[i].ResName);
                            sb.Append("<i class=\"icon-angle-right\"></i>");
                            sb.Append("</li>");
                        }
                        else
                        {
                            sb.Append("<li>");
                            sb.AppendFormat("<a href=\"javascript:void(0)\">{0}</a>", listResult[i].ResName);
                            sb.Append("</li>");
                        }
                    }
                }
            }
            sb.Append("</ul>");
            ViewBag.NavMenu = sb.ToString();
        }