public void createUserRole(MasterFormUserRoleData data) { using (var ctx = new ConXContext()) { using (TransactionScope scope = new TransactionScope()) { UserRole userRole = new UserRole() { roleName = data.roleName, isPC = data.isPC, createUser = data.createUser, createDatetime = DateTime.Now, updateDatetime = DateTime.Now, updateUser = data.createUser, status = "A" }; userRole.userRoleFunctionAuthorizationList = new List <UserRoleFunctionAuthorization>(); string functionId = ""; UserRoleFunctionAuthorization functionAuth = new UserRoleFunctionAuthorization(); foreach (MasterFormUserRoleFunctionData function in data.functions) { if (!functionId.Equals(function.functionId)) { functionId = function.functionId; functionAuth = new UserRoleFunctionAuthorization() { menuFunctionId = function.functionId, createDatetime = DateTime.Now, createUser = data.createUser }; functionAuth.userRoleFunctionAccessList = new List <UserRoleFunctionAccess>(); userRole.userRoleFunctionAuthorizationList.Add(functionAuth); } UserRoleFunctionAccess action = new UserRoleFunctionAccess() { menuFunctionActionId = function.actionId, createDatetime = DateTime.Now, createUser = data.createUser }; functionAuth.userRoleFunctionAccessList.Add(action); } ctx.UserRoles.Add(userRole); ctx.SaveChanges(); scope.Complete(); } } }
public void updateUserRole(MasterFormUserRoleData data) { using (var ctx = new ConXContext()) { using (TransactionScope scope = new TransactionScope()) { ctx.UserRoleFunctionAccesses.RemoveRange( ctx.UserRoleFunctionAccesses .Include("userRoleFunctionAuthorization") .Where(z => z.userRoleFunctionAuthorization.userRoleId == data.userRoleId) ); ctx.UserRoleFunctionAuthorizations.RemoveRange(ctx.UserRoleFunctionAuthorizations.Where(z => z.userRoleId == data.userRoleId)); ctx.SaveChanges(); UserRole userRole = ctx.UserRoles.Where(z => z.userRoleId == data.userRoleId).SingleOrDefault(); string functionId = ""; List <UserRoleFunctionAuthorization> functionAuthList = new List <UserRoleFunctionAuthorization>(); UserRoleFunctionAuthorization functionAuth = new UserRoleFunctionAuthorization(); foreach (MasterFormUserRoleFunctionData function in data.functions) { if (!functionId.Equals(function.functionId)) { functionId = function.functionId; functionAuth = new UserRoleFunctionAuthorization() { userRoleId = userRole.userRoleId, menuFunctionId = function.functionId, createDatetime = DateTime.Now, createUser = data.createUser }; functionAuth.userRoleFunctionAccessList = new List <UserRoleFunctionAccess>(); ctx.UserRoleFunctionAuthorizations.Add(functionAuth); } UserRoleFunctionAccess action = new UserRoleFunctionAccess() { menuFunctionActionId = function.actionId, createDatetime = DateTime.Now, createUser = data.createUser }; functionAuth.userRoleFunctionAccessList.Add(action); } userRole.roleName = data.roleName; userRole.updateDatetime = DateTime.Now; userRole.updateUser = data.createUser; userRole.status = data.status; ctx.SaveChanges(); scope.Complete(); } } }