public async Task <ActionResult> OperationRoles(string id, FormCollection roleItems) { try { if (roleItems != null) { Dictionary <string, object> roleItemValues = new Dictionary <string, object>(); List <string> operationRoles = null; foreach (string key in roleItems.Keys) { if (key.ToLower() != "id") { roleItemValues.Add(key, roleItems.GetValues(key)); } } if (roleItemValues != null) { operationRoles = new List <string>(); foreach (var key in roleItemValues.Keys) { if ((roleItemValues[key] != null) && (roleItemValues[key] as string[]).Length >= 1) { if ((roleItemValues[key] as string[])[0].ToLower() == "true") { operationRoles.Add(key); } } } } using (AuthEntityModelContainer context = new AuthEntityModelContainer()) { var roleOps = context.RoleOperations.Where(ro => (ro.OperationId.ToLower() == id.ToLower()));//context.RoleOperations.Where((ro => (ro.OperationId.ToLower() == id.ToLower()) && (!operationRoles.Contains(ro.OperationId)))); if (roleOps != null) { var roleOpArray = roleOps.ToArray(); var deletedRoleOpes = context.RoleOperations.RemoveRange(roleOpArray); context.SaveChanges(); } } if (operationRoles != null) { var securityManager = Provider.SecurityManager(); List <object> setRoleResults = new List <object>(); foreach (var opRole in operationRoles) { setRoleResults.Add(securityManager.SetRoleOperation(opRole, id)); } } } } catch (Exception ex) { Provider.ExceptionHandler().HandleException(ex); return(View()); } return(RedirectToAction("Details", new { id = id })); //RedirectToAction("Index"); }
public ActionResult RoleOperations(string id, FormCollection opItems) { try { var logger = Provider.Logger(); if (opItems != null) { Dictionary <string, object> opItemValues = new Dictionary <string, object>(); List <string> roleOperations = null; foreach (string key in opItems.Keys) { if (key.ToLower() != "id") { opItemValues.Add(key, opItems.GetValues(key)); } } if (opItemValues != null) { roleOperations = new List <string>(); foreach (var key in opItemValues.Keys) { if ((opItemValues[key] != null) && (opItemValues[key] as string[]).Length >= 1) { if ((opItemValues[key] as string[])[0].ToLower() == "true") { roleOperations.Add(key); } } } } using (AuthEntityModelContainer context = new AuthEntityModelContainer()) { var roleOps = context.RoleOperations.Where(ro => (ro.RoleId.ToLower() == id.ToLower())); if (roleOps != null) { var roleOpArray = roleOps.ToArray(); var deletedRoleOpes = context.RoleOperations.RemoveRange(roleOpArray); context.SaveChanges(); } } if (roleOperations != null) { var securityManager = Provider.SecurityManager(); List <object> setRoleResults = new List <object>(); foreach (var roleOp in roleOperations) { setRoleResults.Add(securityManager.SetRoleOperation(id, roleOp)); } logger.LogUserOperation(ControllerContext.HttpContext.User.Identity.Name, String.Format("User \"{0}\" dispatched operation(s) to role \"{1}\".", ControllerContext.HttpContext.User.Identity.Name, id)); } } return(RedirectToAction("Details", new { id = id })); } catch (Exception ex) { Provider.ExceptionHandler().HandleException(ex); return(View()); } }