Ejemplo n.º 1
0
        /// <summary>
        /// 按操作权限获取列表
        /// </summary>
        /// <param name="userInfo">用户</param>
        /// <param name="tableName">目标表</param>
        /// <param name="permissionCode">操作权限</param>
        /// <returns>数据表</returns>
        public DataTable GetDataTableByPermission(BaseUserInfo userInfo, string tableName, string permissionCode = "Resource.ManagePermission")
        {
            DataTable result = null;

            var parameter = ServiceInfo.Create(userInfo, MethodBase.GetCurrentMethod());

            ServiceUtil.ProcessUserCenterReadDb(userInfo, parameter, (dbHelper) =>
            {
                var itemDetailsManager = new BaseDictionaryItemManager(dbHelper, userInfo, tableName);

                // 管理员取得所有数据
                if (BaseUserManager.IsAdministrator(userInfo.Id))
                {
                    result = itemDetailsManager.GetDataTable(
                        new KeyValuePair <string, object>(BaseDictionaryItemEntity.FieldDeleted, 0)
                        , BaseDictionaryItemEntity.FieldSortCode);
                }
                else
                {
                    // 管理时需要把所有的数据显示出来,所以无效的数据也需要显示的
                    // , new KeyValuePair<string, object>(BaseDictionaryItemEntity.FieldEnabled, 1)

                    // 按数据权限来过滤数据
                    var permissionScopeManager = new BasePermissionScopeManager(dbHelper, userInfo);
                    var ids = permissionScopeManager.GetResourceScopeIds(userInfo.SystemCode, userInfo.Id, tableName, permissionCode);
                    result  = itemDetailsManager.GetDataTable(ids);
                }
                result.TableName = tableName;
            });
            return(result);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 获取系统编号清单
        /// </summary>
        /// <returns>系统编号清单</returns>
        public static List <BaseDictionaryItemEntity> GetSystemCodes()
        {
            var result = new List <BaseDictionaryItemEntity>();

            result = new BaseDictionaryItemManager().GetDataTableByDictionaryCode("BaseSystem").ToList <BaseDictionaryItemEntity>();
            return(result);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 批量保存更新
        /// </summary>
        /// <param name="userInfo">用户</param>
        /// <param name="dt">数据表</param>
        /// <returns>影响行数</returns>
        public int BatchSave(BaseUserInfo userInfo, DataTable dt)
        {
            var result = 0;

            var parameter = ServiceInfo.Create(userInfo, MethodBase.GetCurrentMethod());

            ServiceUtil.ProcessUserCenterWriteDb(userInfo, parameter, (dbHelper) =>
            {
                var itemDetailsManager = new BaseDictionaryItemManager(dbHelper, userInfo, dt.TableName);
                result = itemDetailsManager.BatchSave(dt);
            });
            return(result);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 批量重新生成排序码
        /// </summary>
        /// <param name="userInfo">用户</param>
        /// <param name="tableName">表名</param>
        /// <param name="ids">主键数组</param>
        /// <returns>影响行数</returns>
        public int BatchSetSortCode(BaseUserInfo userInfo, string tableName, string[] ids)
        {
            var result = 0;

            var parameter = ServiceInfo.Create(userInfo, MethodBase.GetCurrentMethod());

            ServiceUtil.ProcessUserCenterWriteDb(userInfo, parameter, (dbHelper) =>
            {
                var itemDetailsManager = new BaseDictionaryItemManager(dbHelper, userInfo, tableName);
                result = itemDetailsManager.BatchSetSortCode(ids);
            });
            return(result);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// 获取实体
        /// </summary>
        /// <param name="userInfo">用户</param>
        /// <param name="tableName">表名</param>
        /// <param name="id">主键</param>
        /// <returns>数据表</returns>
        public BaseDictionaryItemEntity GetEntity(BaseUserInfo userInfo, string tableName, string id)
        {
            var dt = new DataTable(BaseDictionaryItemEntity.CurrentTableName);
            BaseDictionaryItemEntity entity = null;

            var parameter = ServiceInfo.Create(userInfo, MethodBase.GetCurrentMethod());

            ServiceUtil.ProcessUserCenterReadDb(userInfo, parameter, (dbHelper) =>
            {
                var itemDetailsManager = new BaseDictionaryItemManager(dbHelper, userInfo, tableName);
                entity = itemDetailsManager.GetEntity(id);
            });
            return(entity);
        }
Ejemplo n.º 6
0
 /// <summary>
 /// 绑定下拉列表
 /// </summary>
 /// <param name="userInfo">用户信息</param>
 /// <param name="dropDownList">下拉列表</param>
 /// <param name="dictionaryCode">字典编码</param>
 /// <param name="addEmptyItem">是否增加空行</param>
 public static void BindDictionary(BaseUserInfo userInfo, DropDownList dropDownList, string dictionaryCode, bool addEmptyItem = true)
 {
     dropDownList.Items.Clear();
     var dt = new BaseDictionaryItemManager(userInfo).GetDataTableByDictionaryCode(dictionaryCode);
     if (dt != null && dt.Rows.Count > 0)
     {
         dropDownList.DataValueField = BaseDictionaryItemEntity.FieldItemValue;
         dropDownList.DataTextField = BaseDictionaryItemEntity.FieldItemName;
         dt.DefaultView.Sort = BaseDictionaryItemEntity.FieldSortCode;
         dropDownList.DataSource = dt.DefaultView;
         dropDownList.DataBind();
     }
     if (addEmptyItem)
     {
         dropDownList.Items.Insert(0, new ListItem());
     }
 }
Ejemplo n.º 7
0
        /// <summary>
        /// 获取实体
        /// </summary>
        /// <param name="userInfo">用户</param>
        /// <param name="tableName">表名</param>
        /// <param name="code">编码</param>
        /// <returns>数据表</returns>
        public BaseDictionaryItemEntity GetEntityByCode(BaseUserInfo userInfo, string tableName, string code)
        {
            var itemDetailsEntity = new BaseDictionaryItemEntity();

            var parameter = ServiceInfo.Create(userInfo, MethodBase.GetCurrentMethod());

            ServiceUtil.ProcessUserCenterReadDb(userInfo, parameter, (dbHelper) =>
            {
                var itemDetailsManager = new BaseDictionaryItemManager(dbHelper, userInfo, tableName);
                var dt = itemDetailsManager.GetDataTable(new KeyValuePair <string, object>(BaseDictionaryItemEntity.FieldItemKey, code), BaseDictionaryItemEntity.FieldSortCode);
                if ((dt != null) && (dt.Rows.Count > 0))
                {
                    itemDetailsEntity = (BaseDictionaryItemEntity)itemDetailsEntity.GetFrom(dt.Rows[0]);
                }
            });
            return(itemDetailsEntity);
        }
Ejemplo n.º 8
0
        /// <summary>
        /// 获取列表
        /// </summary>
        /// <param name="userInfo">用户</param>
        /// <param name="tableName">目标表</param>
        /// <returns>列表</returns>
        public List <BaseDictionaryItemEntity> GetList(BaseUserInfo userInfo, string tableName)
        {
            var entityList = new List <BaseDictionaryItemEntity>();

            var parameter = ServiceInfo.Create(userInfo, MethodBase.GetCurrentMethod());

            ServiceUtil.ProcessUserCenterReadDb(userInfo, parameter, (dbHelper) =>
            {
                var itemDetailsManager = new BaseDictionaryItemManager(dbHelper, userInfo, tableName);
                entityList             = itemDetailsManager.GetList <BaseDictionaryItemEntity>(
                    new KeyValuePair <string, object>(BaseDictionaryItemEntity.FieldDeleted, 0)
                    , BaseDictionaryItemEntity.FieldSortCode);
                // 管理时需要把所有的数据显示出来,所以无效的数据也需要显示的
                // , new KeyValuePair<string, object>(BaseDictionaryItemEntity.FieldEnabled, 1)
            });
            return(entityList);
        }
Ejemplo n.º 9
0
        /// <summary>
        /// 获取列表
        /// </summary>
        /// <param name="userInfo">用户</param>
        /// <param name="tableName">目标表</param>
        /// <returns>数据表</returns>
        public DataTable GetDataTable(BaseUserInfo userInfo, string tableName)
        {
            var dt = new DataTable(tableName);

            var parameter = ServiceInfo.Create(userInfo, MethodBase.GetCurrentMethod());

            ServiceUtil.ProcessUserCenterReadDb(userInfo, parameter, (dbHelper) =>
            {
                var itemDetailsManager = new BaseDictionaryItemManager(dbHelper, userInfo, tableName);
                // 若是系统管理员,那就返回全部数据
                dt           = itemDetailsManager.GetDataTable(0, BaseDictionaryItemEntity.FieldSortCode);
                dt.TableName = tableName;
                // 管理时需要把所有的数据显示出来,所以无效的数据也需要显示的
                // , new KeyValuePair<string, object>(BaseDictionaryItemEntity.FieldEnabled, 1)
                // 管理时需要把被删除的也需要都显示出来,还能恢复数据才可以
                // new KeyValuePair<string, object>(BaseDictionaryItemEntity.FieldDeleted, 0)
            });
            return(dt);
        }
Ejemplo n.º 10
0
        /// <summary>
        /// 更新实体
        /// </summary>
        /// <param name="userInfo">用户</param>
        /// <param name="tableName">表名</param>
        /// <param name="entity">实体</param>
        /// <param name="status">状态</param>
        /// <param name="statusMessage">返回状态信息</param>
        /// <returns>数据表</returns>
        public int Update(BaseUserInfo userInfo, string tableName, BaseDictionaryItemEntity entity, out Status status, out string statusMessage)
        {
            var result = 0;

            var returnCode    = Status.Ok;
            var returnMessage = string.Empty;
            var parameter     = ServiceInfo.Create(userInfo, MethodBase.GetCurrentMethod());

            ServiceUtil.ProcessUserCenterWriteDb(userInfo, parameter, (dbHelper) =>
            {
                var itemDetailsManager = new BaseDictionaryItemManager(dbHelper, userInfo, tableName);
                // 编辑数据
                result        = itemDetailsManager.Update(entity);
                returnMessage = itemDetailsManager.GetStateMessage(returnCode);
            });
            status        = returnCode;
            statusMessage = returnMessage;
            return(result);
        }
Ejemplo n.º 11
0
        /// <summary>
        /// 获取子列表
        /// </summary>
        /// <param name="userInfo">用户</param>
        /// <param name="tableName">目标表</param>
        /// <param name="parentId">父级主键</param>
        /// <returns>数据表</returns>
        public DataTable GetDataTableByParent(BaseUserInfo userInfo, string tableName, string parentId)
        {
            var dt = new DataTable(tableName);

            var parameter = ServiceInfo.Create(userInfo, MethodBase.GetCurrentMethod());

            ServiceUtil.ProcessUserCenterReadDb(userInfo, parameter, (dbHelper) =>
            {
                var itemDetailsManager = new BaseDictionaryItemManager(dbHelper, userInfo, tableName);
                var parameters         = new List <KeyValuePair <string, object> >
                {
                    new KeyValuePair <string, object>(BaseDictionaryItemEntity.FieldParentId, parentId),
                    new KeyValuePair <string, object>(BaseDictionaryItemEntity.FieldDeleted, 0)
                };
                dt = itemDetailsManager.GetDataTable(parameters, 0, BaseDictionaryItemEntity.FieldSortCode);
                // result = itemDetailsManager.GetDataTableByParent(parentId);
                dt.TableName = tableName;
            });

            return(dt);
        }
Ejemplo n.º 12
0
        /// <summary>
        /// GetListByCode
        /// </summary>
        /// <param name="dbHelper"></param>
        /// <param name="userInfo"></param>
        /// <param name="code"></param>
        /// <returns></returns>
        public List <BaseDictionaryItemEntity> GetListByCode(IDbHelper dbHelper, BaseUserInfo userInfo, string code)
        {
            List <BaseDictionaryItemEntity> result = null;
            // 检查有其他目标数据库表存储了数据
            var itemsManager = new BaseDictionaryManager(dbHelper, userInfo);
            var itemsEntity  = BaseEntity.Create <BaseDictionaryEntity>(itemsManager.GetDataTable(new KeyValuePair <string, object>(BaseDictionaryEntity.FieldCode, code)));

            if (itemsEntity != null)
            {
                var itemDetailsManager = new BaseDictionaryItemManager(dbHelper, userInfo);
                // 这里只要有效的,没被删除的
                var parameters = new List <KeyValuePair <string, object> >
                {
                    // 管理的时候无效的也需要被管理
                    new KeyValuePair <string, object>(BaseDictionaryItemEntity.FieldDictionaryId, itemsEntity.Id),
                    new KeyValuePair <string, object>(BaseDictionaryItemEntity.FieldEnabled, 1),
                    new KeyValuePair <string, object>(BaseDictionaryItemEntity.FieldDeleted, 0)
                };
                result = itemDetailsManager.GetList <BaseDictionaryItemEntity>(parameters, BaseDictionaryItemEntity.FieldSortCode);
            }
            return(result);
        }
Ejemplo n.º 13
0
 /// <summary>
 /// 绑定字典到复选框列表
 /// </summary>
 /// <param name="userInfo">用户信息</param>
 /// <param name="checkBoxList">复选框列表</param>
 /// <param name="dictionaryCode">字典编码</param>
 /// <param name="checkAll">选中全部</param>
 /// <param name="itemStyle">样式</param>
 public static void BindDictionary(BaseUserInfo userInfo, CheckBoxList checkBoxList, string dictionaryCode, bool checkAll = false, bool itemStyle = false)
 {
     checkBoxList.Items.Clear();
     var dt = new BaseDictionaryItemManager(userInfo).GetDataTableByDictionaryCode(dictionaryCode);
     if (dt != null && dt.Rows.Count > 0)
     {
         checkBoxList.DataValueField = BaseDictionaryItemEntity.FieldItemValue;
         checkBoxList.DataTextField = BaseDictionaryItemEntity.FieldItemName;
         dt.DefaultView.Sort = BaseDictionaryItemEntity.FieldSortCode;
         checkBoxList.DataSource = dt.DefaultView;
         checkBoxList.DataBind();
         if (checkAll)
         {
             for (var i = 0; i < checkBoxList.Items.Count; i++)
             {
                 checkBoxList.Items[i].Selected = true;
                 if (itemStyle)
                 {
                     checkBoxList.Items[i].Attributes.Add("style", "padding-right:10px");
                 }
             }
         }
     }
 }