public List <string> GetPermissionLevelListByFunctionName(int userID, string functionName) { var sp = new MD.StoredProcedure.usp_GetUserPermissionLevelByFunctionName() { UserID = userID, FunctionName = functionName }; //var perms = ctx.InvokeStoredProcedure<MD.StoredProcedure.usp_GetUserPermissionLevelByFunctionName, VM.Common.PermissionLevel>(sp); /* * ALTER PROCEDURE[dbo].[usp_GetUserPermissionLevelByFunctionName] * @UserID int, * @FunctionName varchar(100) * AS * BEGIN * -- SET NOCOUNT ON added to prevent extra result sets from * -- interfering with SELECT statements. * SET NOCOUNT ON; * SELECT DISTINCT * FPL.[FunctionName] * , FPL.[PermissionLevel] AS[LevelName] * FROM[dbo].[Common_Authen_RoleFunctionPermission] * AS RFP * INNER JOIN[dbo].[Common_Authen_FunctionPermissionLevel] * AS FPL * ON RFP.[PermissionLevelID] = FPL.ID * INNER JOIN [dbo].[Common_Authen_RoleUser] AS ARU * ON ARU.[RoleID] = RFP.[RoleID] * WHERE ARU.[UserID] = @UserID AND FPL.[FunctionName] = @FunctionName * END */ var query = from fpl in ctx.Common_Authen_FunctionPermissionLevel join rfp in ctx.Common_Authen_RoleFunctionPermission on fpl.ID equals rfp.PermissionLevelID into pls from pl in pls join aru in ctx.Common_Authen_RoleUser on pl.RoleID equals aru.RoleID where aru.UserID == userID && fpl.FunctionName == functionName select new VM.Common.PermissionLevel { ID = -1, //无用 Available = true, //无用 FunctionName = fpl.FunctionName, LevelName = fpl.PermissionLevel }; var perms = query.ToList(); var result = new List <string>(); if (perms != null && perms.Count > 0) { foreach (var item in perms) { result.Add(item.LevelName); } } return(result); }
public List <string> GetPermissionLevelListByFunctionName(int userID, string functionName) { var sp = new MD.StoredProcedure.usp_GetUserPermissionLevelByFunctionName() { UserID = userID, FunctionName = functionName }; var perms = ctx.InvokeStoredProcedure <MD.StoredProcedure.usp_GetUserPermissionLevelByFunctionName, VM.Common.PermissionLevel>(sp); var result = new List <string>(); if (perms != null && perms.Count > 0) { foreach (var item in perms) { result.Add(item.LevelName); } } return(result); }