public IEnumerable <SYS_FunctionPermissionsDto> GetFunctionPermissionsByGroupCode(string groupCode) { List <SYS_FunctionPermissionsDto> listOfFunctionPermissions = new List <SYS_FunctionPermissionsDto>(); List <sy_operas> listOfRight = this.GetListOfRights(); //1. Get all functions for group using (BaseDao context = new BaseDao()) { IQueryable <sy_functions> functions = context.sy_functions.AsQueryable(); foreach (sy_functions item in functions) { SYS_FunctionPermissionsDto newFunction = new SYS_FunctionPermissionsDto() { FunctionPermissionID = Guid.NewGuid(), GroupCode = groupCode, FunctionID = item.ID, FunctionCode = item.FunctionID, FunctionNameVN = item.Name1, FunctionNameEL = item.Name2, FunctionNameJP = item.Name3, }; listOfFunctionPermissions.Add(newFunction); } } //-------------------------------------------------------------------------------- //2. Assign Function's permission IQueryable <ms_permissionsassign> listofFunctionAssign = this.GetExsitingFunctionPermission(groupCode); foreach (ms_permissionsassign ms_permissionsassign in listofFunctionAssign) { sy_functionmapping sy_functionmapping = this.GetFunctionMapping(ms_permissionsassign.MappingID); if (sy_functionmapping != null) { SYS_FunctionPermissionsDto sys_FunctionPermission = listOfFunctionPermissions.Where(c => c.FunctionCode == sy_functionmapping.FunctionID).FirstOrDefault(); if (sys_FunctionPermission != null) { sys_FunctionPermission.MappingID = ms_permissionsassign.MappingID; sy_operas operate = listOfRight.Where(c => c.OperID == sy_functionmapping.OperID).FirstOrDefault(); if (operate != null) { sys_FunctionPermission.Add = (operate.Name2 == "Add"); sys_FunctionPermission.All = (operate.Name2 == "All"); sys_FunctionPermission.Close = (operate.Name2 == "Close"); sys_FunctionPermission.Delete = (operate.Name2 == "Delete"); sys_FunctionPermission.Edit = (operate.Name2 == "Edit"); sys_FunctionPermission.Export = (operate.Name2 == "Export"); sys_FunctionPermission.Import = (operate.Name2 == "Import"); sys_FunctionPermission.Lock = (operate.Name2 == "Lock"); sys_FunctionPermission.Open = (operate.Name2 == "Open"); sys_FunctionPermission.Print = (operate.Name2 == "Print"); sys_FunctionPermission.View = (operate.Name2 == "View"); } } } } return(listOfFunctionPermissions); }
public void UpdateFunctionPermissions(SYS_FunctionPermissionsDto functionPermissionDto) { // 1 Insert/Delete ms_permissionassign bool isRight = false; int mappID; List <sy_operas> listOfRight = this.GetListOfRights(); sy_operas rightChange = listOfRight.Where(c => c.Name2 == functionPermissionDto.PropertiesChange).FirstOrDefault(); // Get mappID if (rightChange != null) { mappID = this.GetFunctionMappingID(functionPermissionDto.FunctionCode, rightChange.OperID); if (functionPermissionDto.PropertiesChange == "All") { isRight = functionPermissionDto.All; } if (functionPermissionDto.PropertiesChange == "Add") { isRight = functionPermissionDto.Add; } if (functionPermissionDto.PropertiesChange == "Close") { isRight = functionPermissionDto.Close; } if (functionPermissionDto.PropertiesChange == "Delete") { isRight = functionPermissionDto.Delete; } if (functionPermissionDto.PropertiesChange == "Edit") { isRight = functionPermissionDto.Edit; } if (functionPermissionDto.PropertiesChange == "Export") { isRight = functionPermissionDto.Export; } if (functionPermissionDto.PropertiesChange == "Import") { isRight = functionPermissionDto.Import; } if (functionPermissionDto.PropertiesChange == "Lock") { isRight = functionPermissionDto.Lock; } if (functionPermissionDto.PropertiesChange == "Open") { isRight = functionPermissionDto.Open; } if (functionPermissionDto.PropertiesChange == "Print") { isRight = functionPermissionDto.Print; } if (functionPermissionDto.PropertiesChange == "View") { isRight = functionPermissionDto.View; } if (isRight) { // Insert ms_permissionassign this.InsertMs_Permissionsassign(new ms_permissionsassign() { MappingID = mappID, GroupCode = functionPermissionDto.GroupCode }); } else { // Delete ms_permissionassign this.DeleteMs_Permissionsassign(new ms_permissionsassign() { MappingID = mappID, GroupCode = functionPermissionDto.GroupCode }); } } }