コード例 #1
0
        private static EasyUiTreeNode CreatePageNode(PageItemData page)
        {
            var node = new EasyUiTreeNode
            {
                ID       = page.Id,
                IsOpen   = page.ItemType <= PageItemType.Folder,
                Tag      = page.Url == "Folder" ? "folder" : "page",
                Text     = page.Caption,
                Title    = page.Name,
                IsFolder = page.ItemType <= PageItemType.Folder
            };

            if (!String.IsNullOrWhiteSpace(page.Icon))
            {
                node.Icon = page.Icon;
            }
            else
            {
                switch (page.ItemType)
                {
                case PageItemType.Folder:
                    node.Icon = "icon-tree-folder";
                    break;

                case PageItemType.Page:
                    node.Icon = "icon-tree-page";
                    break;
                }
            }
            return(node);
        }
コード例 #2
0
ファイル: RoleCache.cs プロジェクト: pingbc/EntityModel
        /// <summary>
        ///     生成角色菜单
        /// </summary>
        private void CreateRoleMenu(EasyUiTreeNode parentNode, int roleId, PageItemData page)
        {
            if (_allPowers != null && !_allPowers.Any(p => p.RoleId == roleId && p.PageItemId == page.Id))
            {
                return;
            }
            var node = CreatePageNode(page);

            node.Attributes = page.Url;
            node.Tag        = page.Url == "Folder" ? "folder" : "page";

            var array = _pages.Where(p => p.ParentId == page.Id && !p.Config.Hide).OrderBy(p => p.Index).ToArray();

            if (array.Length > 0)
            {
                node.IsFolder = true;
            }
            foreach (var ch in array)
            {
                CreateRoleMenu(node, roleId, ch);
            }
            if (page.ItemType == PageItemType.Page || node.HaseChildren)
            {
                parentNode.Children.Add(node);
            }
        }
コード例 #3
0
ファイル: RoleCache.cs プロジェクト: pingbc/EntityModel
        /// <summary>
        ///     生成页面权限树形基础数据
        /// </summary>
        private void CreatePowerTree(EasyUiTreeNode parentNode, PageItemData page)
        {
            parentNode.IsFolder = true;
            var node = CreatePageNode(page);

            foreach (var ch in _pages.Where(p => p.ParentId == page.Id).OrderBy(p => p.Index))
            {
                CreatePowerTree(node, ch);
            }
            parentNode.Attributes = null;
            parentNode.Children.Add(node);
            if (page.ItemType != PageItemType.Page)
            {
                parentNode.IsOpen = true;
                return;
            }
            node.IsFolder = true;
            var items = _piAccess.All(p => p.ParentId == page.Id && p.ItemType >= PageItemType.Button);

            foreach (var item in items)
            {
                node.Children.Add(new EasyUiTreeNode
                {
                    ID     = item.ID,
                    Text   = item.Caption,
                    Title  = item.Name,
                    Tag    = item.ExtendValue,
                    Memo   = item.Memo,
                    IsOpen = true,
                    Icon   = item.ItemType == PageItemType.Action ? "icon-cmd" : "icon-cus",
                });
            }
        }
コード例 #4
0
ファイル: RoleCache.cs プロジェクト: pingbc/EntityModel
        /// <summary>
        /// 缓存角色的页面权限数据
        /// </summary>
        /// <param name="roleId"></param>
        /// <param name="page"></param>
        /// <param name="proxy"></param>
        private void CacheRoleAction(int roleId, PageItemData page, RedisProxy proxy)
        {
            if (!_actions.ContainsKey(page.Id))
            {
                return;
            }
            var dictionary = new Dictionary <string, int>(StringComparer.OrdinalIgnoreCase);

            var actions = roleId <= 1
                ? _actions[page.Id].ToArray()
                : _actions[page.Id].Where(p => _allPowers.Any(a => a.PageItemId == p.Id)).ToArray();

            foreach (var bp in actions)
            {
                if (String.IsNullOrEmpty(bp.ExtendValue) || dictionary.ContainsKey(bp.ExtendValue))
                {
                    continue;
                }
                dictionary.Add(bp.ExtendValue, bp.ID);
            }

            if (page.AuditPage > 0 && _actions.ContainsKey(page.AuditPage))
            {
                var friendsItemDatas = roleId <= 1
                    ? _actions[page.AuditPage].ToArray()
                    : _actions[page.AuditPage].Where(p => _allPowers.Any(a => a.PageItemId == p.Id)).ToArray();
                foreach (var bp in friendsItemDatas)
                {
                    if (String.IsNullOrEmpty(bp.ExtendValue) || dictionary.ContainsKey(bp.ExtendValue))
                    {
                        continue;
                    }
                    dictionary.Add(bp.ExtendValue, bp.ID);
                }
            }
            AddActionSynonym(dictionary, "list", "details");
            AddActionSynonym(dictionary, "update", "details");
            foreach (var action in dictionary.Keys)
            {
                proxy.SetValue(ToRolePageKey(roleId, page.ID, "action", action), 1);
            }
            proxy.Set(ToRolePageKey(roleId, page.ID, "btns"), actions.Select(p => p.Name));
        }
コード例 #5
0
 /// <summary>
 /// 载入数据
 /// </summary>
 /// <param name="reader">数据读取器</param>
 /// <param name="entity">读取数据的实体</param>
 protected sealed override void LoadEntity(MySqlDataReader reader, PageItemData entity)
 {
     using (new EditScope(entity.__EntityStatus, EditArrestMode.All, false))
     {
         entity._id       = (int)reader.GetInt32(0);
         entity._itemtype = (PageItemType)reader.GetInt32(1);
         if (!reader.IsDBNull(2))
         {
             entity._name = reader.GetString(2);
         }
         if (!reader.IsDBNull(3))
         {
             entity._caption = reader.GetString(3);
         }
         if (!reader.IsDBNull(4))
         {
             entity._icon = reader.GetString(4);
         }
         if (!reader.IsDBNull(5))
         {
             entity._json = reader.GetString(5);
         }
         if (!reader.IsDBNull(6))
         {
             entity._url = reader.GetString(6);
         }
         if (!reader.IsDBNull(7))
         {
             entity._memo = reader.GetString(7);
         }
         entity._parentid = (int)reader.GetInt32(8);
         if (!reader.IsDBNull(9))
         {
             entity._extendvalue = reader.GetString(9);
         }
         if (!reader.IsDBNull(10))
         {
             entity._index = reader.GetInt32(10);
         }
     }
 }
コード例 #6
0
        /// <summary>
        ///     生成角色菜单
        /// </summary>
        static void CreateRoleMenu(EasyUiTreeNode parentNode, List <PageItemData> pages, PageItemData page)
        {
            var node = CreatePageNode(page);

            node.Attributes = page.Url;
            node.Tag        = page.Url == "Folder" ? "folder" : "page";

            var array = pages.Where(p => p.ParentId == page.Id && p.ItemType <= PageItemType.Page && !p.Config.Hide).OrderBy(p => p.Index).ToArray();

            if (array.Length > 0)
            {
                node.IsFolder = true;
            }
            foreach (var ch in array)
            {
                CreateRoleMenu(node, pages, ch);
            }
            if (page.ItemType == PageItemType.Page || node.HaseChildren)
            {
                parentNode.Children.Add(node);
            }
        }
コード例 #7
0
 /// <summary>
 /// 设置插入数据的命令
 /// </summary>
 /// <param name="entity">实体对象</param>
 /// <param name="cmd">命令</param>
 /// <returns>返回真说明要取主键</returns>
 protected sealed override bool SetInsertCommand(PageItemData entity, MySqlCommand cmd)
 {
     cmd.CommandText = InsertSqlCode;
     CreateFullSqlParameter(entity, cmd);
     return(true);
 }
コード例 #8
0
 /// <summary>
 /// 设置更新数据的命令
 /// </summary>
 /// <param name="entity">实体对象</param>
 /// <param name="cmd">命令</param>
 protected sealed override void SetUpdateCommand(PageItemData entity, MySqlCommand cmd)
 {
     cmd.CommandText = UpdateSqlCode;
     CreateFullSqlParameter(entity, cmd);
 }
コード例 #9
0
        /// <summary>
        /// 设置插入数据的命令
        /// </summary>
        /// <param name="entity">实体对象</param>
        /// <param name="cmd">命令</param>
        /// <returns>返回真说明要取主键</returns>
        private void CreateFullSqlParameter(PageItemData entity, MySqlCommand cmd)
        {
            //01:标识(ID)
            cmd.Parameters.Add(new MySqlParameter("ID", MySqlDbType.Int32)
            {
                Value = entity.ID
            });
            //02:节点类型(ItemType)
            cmd.Parameters.Add(new MySqlParameter("ItemType", MySqlDbType.Int32)
            {
                Value = entity.ItemType
            });
            //03:名称(Name)
            var isNull    = string.IsNullOrWhiteSpace(entity.Name);
            var parameter = new MySqlParameter("Name", MySqlDbType.VarChar, isNull ? 10 : (entity.Name).Length);

            if (isNull)
            {
                parameter.Value = DBNull.Value;
            }
            else
            {
                parameter.Value = entity.Name;
            }
            cmd.Parameters.Add(parameter);
            //04:标题(Caption)
            isNull    = string.IsNullOrWhiteSpace(entity.Caption);
            parameter = new MySqlParameter("Caption", MySqlDbType.VarChar, isNull ? 10 : (entity.Caption).Length);
            if (isNull)
            {
                parameter.Value = DBNull.Value;
            }
            else
            {
                parameter.Value = entity.Caption;
            }
            cmd.Parameters.Add(parameter);
            //05:图标(Icon)
            isNull    = string.IsNullOrWhiteSpace(entity.Icon);
            parameter = new MySqlParameter("Icon", MySqlDbType.VarChar, isNull ? 10 : (entity.Icon).Length);
            if (isNull)
            {
                parameter.Value = DBNull.Value;
            }
            else
            {
                parameter.Value = entity.Icon;
            }
            cmd.Parameters.Add(parameter);
            //06:Json内容(Json)
            isNull    = string.IsNullOrWhiteSpace(entity.Json);
            parameter = new MySqlParameter("Json", MySqlDbType.VarChar, isNull ? 10 : (entity.Json).Length);
            if (isNull)
            {
                parameter.Value = DBNull.Value;
            }
            else
            {
                parameter.Value = entity.Json;
            }
            cmd.Parameters.Add(parameter);
            //07:扩展内容(ExtendValue)
            isNull    = string.IsNullOrWhiteSpace(entity.ExtendValue);
            parameter = new MySqlParameter("ExtendValue", MySqlDbType.VarChar, isNull ? 10 : (entity.ExtendValue).Length);
            if (isNull)
            {
                parameter.Value = DBNull.Value;
            }
            else
            {
                parameter.Value = entity.ExtendValue;
            }
            cmd.Parameters.Add(parameter);
            //08:页面连接(Url)
            isNull    = string.IsNullOrWhiteSpace(entity.Url);
            parameter = new MySqlParameter("Url", MySqlDbType.VarChar, isNull ? 10 : (entity.Url).Length);
            if (isNull)
            {
                parameter.Value = DBNull.Value;
            }
            else
            {
                parameter.Value = entity.Url;
            }
            cmd.Parameters.Add(parameter);
            //08:备注(Memo)
            isNull    = string.IsNullOrWhiteSpace(entity.Memo);
            parameter = new MySqlParameter("Memo", MySqlDbType.VarChar, isNull ? 10 : (entity.Memo).Length);
            if (isNull)
            {
                parameter.Value = DBNull.Value;
            }
            else
            {
                parameter.Value = entity.Memo;
            }
            cmd.Parameters.Add(parameter);
            //09:上级节点(ParentId)
            cmd.Parameters.Add(new MySqlParameter("ParentId", MySqlDbType.Int32)
            {
                Value = entity.ParentId
            });
            //09:上级节点(ParentId)
            cmd.Parameters.Add(new MySqlParameter("Index", MySqlDbType.Int32)
            {
                Value = entity.Index
            });
        }
コード例 #10
0
        /// <summary>
        /// 取得仅更新的SQL语句
        /// </summary>
        internal string GetModifiedSqlCode(PageItemData data)
        {
            if (data.__EntityStatusNull || !data.__EntityStatus.IsModified)
            {
                return(";");
            }
            StringBuilder sql = new StringBuilder();

            sql.AppendLine("UPDATE [tb_sys_page_item] SET");
            //节点类型
            if (data.__EntityStatus.ModifiedProperties[PageItemData.Real_ItemType] > 0)
            {
                sql.AppendLine("       [ItemType] = @ItemType");
            }
            //名称
            if (data.__EntityStatus.ModifiedProperties[PageItemData.Real_Name] > 0)
            {
                sql.AppendLine("       [Name] = @Name");
            }
            //标题
            if (data.__EntityStatus.ModifiedProperties[PageItemData.Real_Caption] > 0)
            {
                sql.AppendLine("       [Caption] = @Caption");
            }
            //图标
            if (data.__EntityStatus.ModifiedProperties[PageItemData.Real_Icon] > 0)
            {
                sql.AppendLine("       [Icon] = @Icon");
            }
            //Json内容
            if (data.__EntityStatus.ModifiedProperties[PageItemData.Real_Json] > 0)
            {
                sql.AppendLine("       [Json] = @Json");
            }
            //页面连接
            if (data.__EntityStatus.ModifiedProperties[PageItemData.Real_Url] > 0)
            {
                sql.AppendLine("       [Url] = @Url");
            }
            //备注
            if (data.__EntityStatus.ModifiedProperties[PageItemData.Real_Memo] > 0)
            {
                sql.AppendLine("       [Memo] = @Memo");
            }
            //上级节点
            if (data.__EntityStatus.ModifiedProperties[PageItemData.Real_ParentId] > 0)
            {
                sql.AppendLine("       [ParentId] = @ParentId");
            }
            //扩展内容
            if (data.__EntityStatus.ModifiedProperties[PageItemData.Real_ExtendValue] > 0)
            {
                sql.AppendLine("       [ExtendValue] = @ExtendValue");
            }
            //扩展内容
            if (data.__EntityStatus.ModifiedProperties[PageItemData.Real_ExtendValue] > 0)
            {
                sql.AppendLine("       [Index] = @Index");
            }
            sql.Append(" WHERE [ID] = @ID;");
            return(sql.ToString());
        }