Пример #1
0
 public void Insert(MenusInfo model)
 {
     if (!list.Contains(model))
     {
         list.Add(model);
     }
 }
Пример #2
0
        public int Insert(MenusInfo model)
        {
            StringBuilder sb = new StringBuilder(250);

            sb.Append(@"insert into Menus (ApplicationId,ParentId,IdStep,Title,Url,Descr,AllowRoles,DenyUsers,Sort,LastUpdatedDate)
			            values
						(@ApplicationId,@ParentId,@IdStep,@Title,@Url,@Descr,@AllowRoles,@DenyUsers,@Sort,@LastUpdatedDate)
			            "            );

            SqlParameter[] parms =
            {
                new SqlParameter("@ApplicationId",   SqlDbType.UniqueIdentifier),
                new SqlParameter("@ParentId",        SqlDbType.UniqueIdentifier),
                new SqlParameter("@IdStep",          SqlDbType.VarChar,           1000),
                new SqlParameter("@Title",           SqlDbType.NVarChar,            20),
                new SqlParameter("@Url",             SqlDbType.VarChar,            256),
                new SqlParameter("@Descr",           SqlDbType.NVarChar,            50),
                new SqlParameter("@AllowRoles",      SqlDbType.NVarChar,          1000),
                new SqlParameter("@DenyUsers",       SqlDbType.NVarChar,          1000),
                new SqlParameter("@Sort",            SqlDbType.Int),
                new SqlParameter("@LastUpdatedDate", SqlDbType.DateTime)
            };
            parms[0].Value = model.ApplicationId;
            parms[1].Value = model.ParentId;
            parms[2].Value = model.IdStep;
            parms[3].Value = model.Title;
            parms[4].Value = model.Url;
            parms[5].Value = model.Descr;
            parms[6].Value = model.AllowRoles;
            parms[7].Value = model.DenyUsers;
            parms[8].Value = model.Sort;
            parms[9].Value = model.LastUpdatedDate;

            return(SqlHelper.ExecuteNonQuery(SqlHelper.AssetConnString, CommandType.Text, sb.ToString(), parms));
        }
Пример #3
0
        public IList <MenusInfo> GetList(int pageIndex, int pageSize, out int totalRecords, string sqlWhere, params SqlParameter[] cmdParms)
        {
            StringBuilder sb = new StringBuilder(500);

            sb.Append(@"select count(*) from Menus ");
            if (!string.IsNullOrEmpty(sqlWhere))
            {
                sb.AppendFormat(" where 1=1 {0} ", sqlWhere);
            }
            totalRecords = (int)SqlHelper.ExecuteScalar(SqlHelper.AssetConnString, CommandType.Text, sb.ToString(), cmdParms);

            if (totalRecords == 0)
            {
                return(new List <MenusInfo>());
            }

            sb.Clear();
            int startIndex = (pageIndex - 1) * pageSize + 1;
            int endIndex   = pageIndex * pageSize;

            sb.Append(@"select * from(select row_number() over(order by Sort) as RowNumber,
			          ApplicationId,Id,ParentId,IdStep,Title,Url,Descr,AllowRoles,DenyUsers,Sort,LastUpdatedDate
					  from Menus "                    );
            if (!string.IsNullOrEmpty(sqlWhere))
            {
                sb.AppendFormat(" where 1=1 {0} ", sqlWhere);
            }
            sb.AppendFormat(@")as objTable where RowNumber between {0} and {1} ", startIndex, endIndex);

            IList <MenusInfo> list = new List <MenusInfo>();

            using (SqlDataReader reader = SqlHelper.ExecuteReader(SqlHelper.AssetConnString, CommandType.Text, sb.ToString(), cmdParms))
            {
                if (reader != null && reader.HasRows)
                {
                    while (reader.Read())
                    {
                        MenusInfo model = new MenusInfo();
                        model.ApplicationId   = reader.GetGuid(1);
                        model.Id              = reader.GetGuid(2);
                        model.ParentId        = reader.GetGuid(3);
                        model.IdStep          = reader.GetString(4);
                        model.Title           = reader.GetString(5);
                        model.Url             = reader.GetString(6);
                        model.Descr           = reader.GetString(7);
                        model.AllowRoles      = reader.GetString(8);
                        model.DenyUsers       = reader.GetString(9);
                        model.Sort            = reader.GetInt32(10);
                        model.LastUpdatedDate = reader.GetDateTime(11);

                        list.Add(model);
                    }
                }
            }

            return(list);
        }
Пример #4
0
        public void Update(MenusInfo model)
        {
            int i = list.FindIndex(delegate(MenusInfo m) { return(m.Id == model.Id); });

            if (i >= 0)
            {
                list.IndexOf(model, i);
            }
        }
Пример #5
0
        public IList <MenusInfo> GetListForMenuAccess(object allowRoleId, object denyUserId, string sqlWhere, params SqlParameter[] cmdParms)
        {
            var           roleMenuIndex = string.Format("CHARINDEX('{0}',OperationAccess) IsAdd,CHARINDEX('{1}',OperationAccess) IsEdit,CHARINDEX('{2}',OperationAccess) IsDelete ", (int)EnumData.EnumOperationAccess.新增, (int)EnumData.EnumOperationAccess.编辑, (int)EnumData.EnumOperationAccess.除);
            StringBuilder sb            = new StringBuilder(250);

            sb.AppendFormat(@"select Id,ParentId,Title,Url,Descr,CHARINDEX('{0}',AllowRoles) IsAllowRole,CHARINDEX('{1}',DenyUsers) IsDenyUser {2} 
			            from Menus m "            , allowRoleId, denyUserId, "," + roleMenuIndex + "");
            if (allowRoleId != null)
            {
                sb.AppendFormat("left join RoleMenu on m.Id = MenuId and RoleId = '{0}' ", allowRoleId);
            }
            else
            {
                sb.AppendFormat("left join UserMenu on m.Id = MenuId and UserId = '{0}' ", denyUserId);
            }
            if (!string.IsNullOrEmpty(sqlWhere))
            {
                sb.AppendFormat(" where 1=1 {0} ", sqlWhere);
            }
            sb.Append("order by Sort ");

            IList <MenusInfo> list = new List <MenusInfo>();

            using (SqlDataReader reader = SqlHelper.ExecuteReader(SqlHelper.AssetConnString, CommandType.Text, sb.ToString(), cmdParms))
            {
                if (reader != null && reader.HasRows)
                {
                    while (reader.Read())
                    {
                        MenusInfo model = new MenusInfo();
                        model.Id       = reader.GetGuid(0);
                        model.ParentId = reader.GetGuid(1);
                        model.Title    = reader.GetString(2);
                        model.Url      = reader.GetString(3);
                        model.Descr    = reader.GetString(4);

                        var isAllowRole = reader.GetInt32(5);
                        var isDenyUser  = reader.GetInt32(6);

                        model.IsView = isAllowRole > 0;
                        if (isDenyUser > 0)
                        {
                            model.IsView = false;
                        }
                        model.IsAdd    = reader.IsDBNull(7) ? false : reader.GetInt32(7) > 0;
                        model.IsEdit   = reader.IsDBNull(8) ? false : reader.GetInt32(8) > 0;
                        model.IsDelete = reader.IsDBNull(9) ? false : reader.GetInt32(9) > 0;

                        list.Add(model);
                    }
                }
            }

            return(list);
        }
Пример #6
0
        public ResResultModel SaveMenus(MenusModel model)
        {
            try
            {
                if (model == null)
                {
                    return(ResResult.Response(false, "未获取到任何参数"));
                }
                if (string.IsNullOrWhiteSpace(model.Title))
                {
                    return(ResResult.Response(false, "菜单名称不能为空字符串"));
                }
                var Id       = Guid.Empty;
                var parentId = Guid.Empty;
                if (model.Id != null && !string.IsNullOrWhiteSpace(model.Id.ToString()))
                {
                    Guid.TryParse(model.Id.ToString(), out Id);
                }
                if (model.ParentId != null && !string.IsNullOrWhiteSpace(model.ParentId.ToString()))
                {
                    Guid.TryParse(model.ParentId.ToString(), out parentId);
                }

                var appBll = new Application();
                var appId  = appBll.GetApplicationId(Membership.ApplicationName);

                var bll    = new Menus();
                int effect = 0;

                var modelInfo = new MenusInfo(Guid.Parse(appId.ToString()), Id, parentId, model.IdStep, model.Title, model.Url, model.Descr, "*", "", model.Sort, DateTime.Now);

                if (Id.Equals(Guid.Empty))
                {
                    modelInfo.Id     = Guid.NewGuid();
                    modelInfo.IdStep = (modelInfo.Id + "," + modelInfo.IdStep).Trim(',');
                    effect           = bll.InsertByOutput(modelInfo);
                }
                else
                {
                    effect = bll.Update(modelInfo);
                }
                if (effect < 1)
                {
                    return(ResResult.Response(false, "操作失败,数据库操作异常"));
                }

                return(ResResult.Response(true, "操作成功", modelInfo.Id));
            }
            catch (Exception ex)
            {
                return(ResResult.Response(false, "操作异常:" + ex.Message + ""));
            }
        }
Пример #7
0
        public IList <MenusInfo> GetListByParentName(string parentName)
        {
            StringBuilder sb = new StringBuilder(500);

            sb.Append(@"select m.ApplicationId,m.Id,m.ParentId,m.IdStep,m.Title,m.Url,m.Descr,m.AllowRoles,m.DenyUsers,m.Sort,m.LastUpdatedDate
                        from Menus m 
                        join Menus m2 on CHARINDEX(convert(varchar(36),m2.Id),m.IdStep) > 0
                        and m2.Title = @Title
                        order by m.Sort 
                        ");

            SqlParameter[] parms =
            {
                new SqlParameter("@Title", SqlDbType.NVarChar, 20)
            };
            parms[0].Value = parentName;

            var list = new List <MenusInfo>();

            using (SqlDataReader reader = SqlHelper.ExecuteReader(SqlHelper.AssetConnString, CommandType.Text, sb.ToString(), parms))
            {
                if (reader != null && reader.HasRows)
                {
                    while (reader.Read())
                    {
                        MenusInfo model = new MenusInfo();
                        model.ApplicationId   = reader.GetGuid(0);
                        model.Id              = reader.GetGuid(1);
                        model.ParentId        = reader.GetGuid(2);
                        model.IdStep          = reader.GetString(3);
                        model.Title           = reader.GetString(4);
                        model.Url             = reader.GetString(5);
                        model.Descr           = reader.GetString(6);
                        model.AllowRoles      = reader.GetString(7);
                        model.DenyUsers       = reader.GetString(8);
                        model.Sort            = reader.GetInt32(9);
                        model.LastUpdatedDate = reader.GetDateTime(10);

                        list.Add(model);
                    }
                }
            }

            return(list);
        }
Пример #8
0
        public IList <MenusInfo> GetList(string sqlWhere, params SqlParameter[] cmdParms)
        {
            StringBuilder sb = new StringBuilder(500);

            sb.Append(@"select ApplicationId,Id,ParentId,IdStep,Title,Url,Descr,AllowRoles,DenyUsers,Sort,LastUpdatedDate
                        from Menus ");
            if (!string.IsNullOrEmpty(sqlWhere))
            {
                sb.AppendFormat(" where 1=1 {0} ", sqlWhere);
            }
            sb.Append("order by Sort ");

            IList <MenusInfo> list = new List <MenusInfo>();

            using (SqlDataReader reader = SqlHelper.ExecuteReader(SqlHelper.AssetConnString, CommandType.Text, sb.ToString(), cmdParms))
            {
                if (reader != null && reader.HasRows)
                {
                    while (reader.Read())
                    {
                        MenusInfo model = new MenusInfo();
                        model.ApplicationId   = reader.GetGuid(0);
                        model.Id              = reader.GetGuid(1);
                        model.ParentId        = reader.GetGuid(2);
                        model.IdStep          = reader.GetString(3);
                        model.Title           = reader.GetString(4);
                        model.Url             = reader.GetString(5);
                        model.Descr           = reader.GetString(6);
                        model.AllowRoles      = reader.GetString(7);
                        model.DenyUsers       = reader.GetString(8);
                        model.Sort            = reader.GetInt32(9);
                        model.LastUpdatedDate = reader.GetDateTime(10);

                        list.Add(model);
                    }
                }
            }

            return(list);
        }
Пример #9
0
        public MenusInfo GetModel(Guid id)
        {
            MenusInfo model = null;

            StringBuilder sb = new StringBuilder(300);

            sb.Append(@"select top 1 ApplicationId,Id,ParentId,IdStep,Title,Url,Descr,AllowRoles,DenyUsers,Sort,LastUpdatedDate 
			            from Menus
						where Id = @Id "                        );
            SqlParameter[] parms =
            {
                new SqlParameter("@Id", SqlDbType.UniqueIdentifier)
            };
            parms[0].Value = id;

            using (SqlDataReader reader = SqlHelper.ExecuteReader(SqlHelper.AssetConnString, CommandType.Text, sb.ToString(), parms))
            {
                if (reader != null)
                {
                    if (reader.Read())
                    {
                        model = new MenusInfo();
                        model.ApplicationId   = reader.GetGuid(0);
                        model.Id              = reader.GetGuid(1);
                        model.ParentId        = reader.GetGuid(2);
                        model.IdStep          = reader.GetString(3);
                        model.Title           = reader.GetString(4);
                        model.Url             = reader.GetString(5);
                        model.Descr           = reader.GetString(6);
                        model.AllowRoles      = reader.GetString(7);
                        model.DenyUsers       = reader.GetString(8);
                        model.Sort            = reader.GetInt32(9);
                        model.LastUpdatedDate = reader.GetDateTime(10);
                    }
                }
            }

            return(model);
        }
Пример #10
0
        protected override SiteMapNode GetRootNodeCore()
        {
            MenusInfo rootNode = null;

            if (HttpContext.Current.User.Identity.IsAuthenticated)
            {
                rootNode = list.FirstOrDefault(m => m.Title == EnumData.EnumMenuName.首页.ToString() && !m.Url.Contains(FormsAuthentication.DefaultUrl.Replace("~", "")));
            }
            else
            {
                rootNode = list.FirstOrDefault(m => m.Url.Contains(FormsAuthentication.DefaultUrl.Replace("~", "")));
            }

            if (rootNode == null)
            {
                throw new Exception("未找到相关配置,请检查");
            }

            var temp = new SiteMapNode(this, rootNode.Id.ToString(), rootNode.Url, rootNode.Title, rootNode.Descr);

            return(temp);
        }
Пример #11
0
        public IList <MenusInfo> GetList()
        {
            StringBuilder sb = new StringBuilder(300);

            sb.Append(@"select ApplicationId,Id,ParentId,IdStep,Title,Url,Descr,AllowRoles,DenyUsers,Sort,LastUpdatedDate 
			            from Menus
					    order by Sort "                    );

            IList <MenusInfo> list = new List <MenusInfo>();

            using (SqlDataReader reader = SqlHelper.ExecuteReader(SqlHelper.AssetConnString, CommandType.Text, sb.ToString()))
            {
                if (reader != null && reader.HasRows)
                {
                    while (reader.Read())
                    {
                        MenusInfo model = new MenusInfo();
                        model.ApplicationId   = reader.GetGuid(0);
                        model.Id              = reader.GetGuid(1);
                        model.ParentId        = reader.GetGuid(2);
                        model.IdStep          = reader.GetString(3);
                        model.Title           = reader.GetString(4);
                        model.Url             = reader.GetString(5);
                        model.Descr           = reader.GetString(6);
                        model.AllowRoles      = reader.GetString(7);
                        model.DenyUsers       = reader.GetString(8);
                        model.Sort            = reader.GetInt32(9);
                        model.LastUpdatedDate = reader.GetDateTime(10);

                        list.Add(model);
                    }
                }
            }

            return(list);
        }
Пример #12
0
 public int Update(MenusInfo model)
 {
     return(dal.Update(model));
 }
Пример #13
0
 public int Insert(MenusInfo model)
 {
     return(dal.Insert(model));
 }
Пример #14
0
        public IList <MenusInfo> GetUserMenuAccessList(object userId, string[] userRoles)
        {
            var sbIn = new StringBuilder(300);

            sbIn.Append("(");
            var index = 0;

            foreach (var item in userRoles)
            {
                if (index > 0)
                {
                    sbIn.Append(",");
                }
                sbIn.AppendFormat("'{0}'", item.ToLower());

                index++;
            }
            sbIn.Append(")");
            var sb = new StringBuilder(2000);

            sb.AppendFormat(@"select Id,ParentId,Title,Url,Descr 
                            ,CHARINDEX(convert(varchar(36),r.RoleId),m.AllowRoles) IsAllowRole
                            ,CHARINDEX('{0}',DenyUsers) IsDenyUser
                            ,CHARINDEX('{2}',rm.OperationAccess) IsAllowAdd,CHARINDEX('{3}',rm.OperationAccess) IsAllowEdit,CHARINDEX('{4}',rm.OperationAccess) IsAllowDelete
                            ,CHARINDEX('{2}',um.OperationAccess) IsDenyAdd,CHARINDEX('{3}',um.OperationAccess) IsDenyEdit,CHARINDEX('{4}',um.OperationAccess) IsDenyDelete
                            from Menus m
                            left join TygaSoftAspnetDb.dbo.aspnet_Roles r on CHARINDEX(convert(varchar(36),r.RoleId),m.AllowRoles) > 0
                            left join RoleMenu rm on rm.RoleId = r.RoleId and rm.MenuId = m.Id
                            left join UserMenu um on um.UserId = '{0}' and um.MenuId = m.Id
                            where 
                            r.LoweredRoleName in {1}
                            order by m.Sort ", userId, sbIn.ToString(), (int)EnumData.EnumOperationAccess.新增, (int)EnumData.EnumOperationAccess.编辑, (int)EnumData.EnumOperationAccess.除);

            IList <MenusInfo> list = new List <MenusInfo>();

            using (SqlDataReader reader = SqlHelper.ExecuteReader(SqlHelper.AssetConnString, CommandType.Text, sb.ToString()))
            {
                if (reader != null && reader.HasRows)
                {
                    while (reader.Read())
                    {
                        MenusInfo model = new MenusInfo();
                        model.Id       = reader.GetGuid(0);
                        model.ParentId = reader.GetGuid(1);
                        model.Title    = reader.GetString(2);
                        model.Url      = reader.GetString(3);
                        model.Descr    = reader.GetString(4);

                        var isAllowRole   = reader.GetInt32(5);
                        var isDenyUser    = reader.GetInt32(6);
                        var isAllowAdd    = reader.IsDBNull(7) ? false : reader.GetInt32(7) > 0;
                        var isAllowEdit   = reader.IsDBNull(8) ? false : reader.GetInt32(8) > 0;
                        var isAllowDelete = reader.IsDBNull(9) ? false : reader.GetInt32(9) > 0;

                        var isDenyAdd    = reader.IsDBNull(10) ? false : reader.GetInt32(10) > 0;
                        var isDenyEdit   = reader.IsDBNull(11) ? false : reader.GetInt32(11) > 0;
                        var isDenyDelete = reader.IsDBNull(12) ? false : reader.GetInt32(12) > 0;

                        if (isDenyUser > 0)
                        {
                            model.IsView = false;
                        }
                        else
                        {
                            model.IsView = isAllowRole > 0;
                        }

                        if (isDenyAdd)
                        {
                            model.IsAdd = false;
                        }
                        else
                        {
                            model.IsAdd = isAllowAdd;
                        }

                        if (isDenyEdit)
                        {
                            model.IsEdit = false;
                        }
                        else
                        {
                            model.IsEdit = isAllowEdit;
                        }

                        if (isDenyDelete)
                        {
                            model.IsDelete = false;
                        }
                        else
                        {
                            model.IsDelete = isAllowDelete;
                        }

                        list.Add(model);
                    }
                }
            }

            if (list.Count == 0)
            {
                return(list);
            }

            var endList = new List <MenusInfo>();
            var q       = list.GroupBy(m => m.Id);

            foreach (var g in q)
            {
                var itemInfo = list.First(m => m.Id.Equals(g.Key));
                var isView   = list.Any(m => (m.Id.Equals(g.Key) && m.IsView));
                var isAdd    = list.Any(m => (m.Id.Equals(g.Key) && m.IsAdd));
                var isEdit   = list.Any(m => (m.Id.Equals(g.Key) && m.IsEdit));
                var isDelete = list.Any(m => (m.Id.Equals(g.Key) && m.IsDelete));

                itemInfo.IsView   = isView;
                itemInfo.IsAdd    = isAdd;
                itemInfo.IsEdit   = isEdit;
                itemInfo.IsDelete = isDelete;

                endList.Add(itemInfo);
            }

            return(endList);
        }