예제 #1
0
        public List <PrivilegeDto> GetUrlPermissionItems(string userID, short[] roleIDs)
        {
            var           sessionKey      = "UrlPermission";
            ICacheManager _sessionManager = IocObjectManager.GetInstance().Resolve <IHttpContextSessionManager>();
            var           result          = _sessionManager.Get(sessionKey, 20, () =>
            {
                return((from p in UseRepository.Table
                        join u in _programRepository.Table
                        on p.AccessValue equals u.ProgramID
                        where p.AccessMaster == 1 && p.OperationID == 1
                        //&& ((p.PrivilegeMaster == 1 && p.PrivilegeValue == roleID.ToString()) || (p.PrivilegeMaster == 2 && p.PrivilegeValue == userID)) && p.OperationID == 1
                        select new PrivilegeDto {
                    PrivilegeID = p.PrivilegeID, ValidFrom = p.ValidFrom, ValidUntil = p.ValidUntil, PrivilegeMaster = p.PrivilegeMaster, PrivilegeValue = p.PrivilegeValue, AccessMaster = p.AccessMaster, AccessValue = p.AccessValue, BranchMember = p.BranchMember, OperationID = p.OperationID, IsIdentity = p.IsIdentity, Url = u.Url
                }).Union(
                           from p in UseRepository.Table
                           join u in _programButtonRepository.Table
                           on p.AccessValue equals u.ProgramButtonID
                           where p.AccessMaster == 2 && p.OperationID == 1
                           //&& ((p.PrivilegeMaster == 1 && p.PrivilegeValue == roleID.ToString()) || (p.PrivilegeMaster == 2 && p.PrivilegeValue == userID)) && p.OperationID == 1
                           select new PrivilegeDto {
                    PrivilegeID = p.PrivilegeID, ValidFrom = p.ValidFrom, ValidUntil = p.ValidUntil, PrivilegeMaster = p.PrivilegeMaster, PrivilegeValue = p.PrivilegeValue, AccessMaster = p.AccessMaster, AccessValue = p.AccessValue, BranchMember = p.BranchMember, OperationID = p.OperationID, IsIdentity = p.IsIdentity, Url = u.Url
                }
                           ).ToList());
            }, () =>
            {
                return(_versionControlService.GetVersionFlag(sessionKey));
            });
            var item = result.Where(p => (p.PrivilegeMaster == 1 && roleIDs.Contains(short.Parse(p.PrivilegeValue))) || (p.PrivilegeMaster == 2 && p.PrivilegeValue == userID));

            return(item != null?item.ToList() : null);
        }
예제 #2
0
        /// 返回codeTable缓存数据
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public List <CodeTableItemDto> GetCodeTable(CodeTableDto model)
        {
            var cacheKey = model.TableName;
            var strSql   = "DECLARE @SQL NVARCHAR(2000) SELECT @SQL = SelectSql FROM tbCOM_CodeTable WHERE Name = @p0; ";

            if (!string.IsNullOrEmpty(model.Where))
            {
                strSql += string.Format(" SELECT @SQL=N'SELECT * FROM ('+@SQL+N') AS temp WHERE  {0}' ", model.Where);
            }

            strSql += " EXEC(@SQL) ";

            SqlParameter[] parameters = { new SqlParameter("@p0", model.TableName) };

            Func <List <CodeTableItemDto> > loadFun = () =>
            {
                var data = DbHelperSql.Query(DbHelperSql.DefaultQueryConn, strSql, parameters);
                return(data != null && data.Tables.Count > 0 ? Conversion.ConvertToList <CodeTableItemDto>(data.Tables[0]) : null);
            };

            if (model.UseCache && string.IsNullOrEmpty(model.Where))
            {
                ICacheManager cacheManager = IocObjectManager.GetInstance().Resolve <IHttpContextCacheManager>();
                return(cacheManager.Get(cacheKey, 60, loadFun, () => { return _versionControlService.GetVersionFlag(cacheKey); }));
            }
            else
            {
                return(loadFun());
            }
        }
예제 #3
0
        /// 返回codeTable缓存数据
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public List <CodeTableItemDto> GetCodeTable(CodeTableDto model)
        {
            var cacheKey = "CodeTable_" + model.TableName;
            var strSql   = "";

            List <SqlParameter> parameters = new List <SqlParameter>()
            {
            };

            if (model.SqlParameters != null && model.SqlParameters.Count >= 0)
            {
                model.SqlParameters.ForEach(m => parameters.Add(m));
                strSql = this.GetModel(m => m.TableName == model.TableName).SelectSql;

                if (!string.IsNullOrEmpty(model.Where))
                {
                    strSql = string.Format("SELECT * FROM ({0}) AS temp WHERE  {1} {2}", strSql, model.Where, model.Order);
                }
            }
            else
            {
                strSql = "DECLARE @SQL NVARCHAR(2000) SELECT @SQL = Select_Sql FROM tbCOM_Code_Table WHERE Table_Name = @p1989; ";
                parameters.Add(new SqlParameter("@p1989", model.TableName));

                if (!string.IsNullOrEmpty(model.Where))
                {
                    strSql += string.Format(" SELECT @SQL=N'SELECT * FROM ('+@SQL+N') AS temp WHERE  {0}' " + model.Order, model.Where);
                }

                strSql += " EXEC(@SQL) ";
            }

            Func <List <CodeTableItemDto> > loadFun = () =>
            {
                var data = DbHelperSql.Query(DbHelperSql.CouQuery, strSql, parameters.ToArray());
                return(data != null && data.Tables.Count > 0 ? Conversion.ConvertToList <CodeTableItemDto>(data.Tables[0]) : null);
            };

            if (model.UseCache && string.IsNullOrEmpty(model.Where))
            {
                ICacheManager cacheManager = IocObjectManager.GetInstance().Resolve <IHttpContextCacheManager>();
                return(cacheManager.Get(cacheKey, 60, loadFun, () => { return _versionControlService.GetVersionFlag(cacheKey); }));
            }
            else
            {
                return(loadFun());
            }
        }