public ActionResult DeleteConfirmed(int id, RoleEditModel roleEdit) { try { var rolePerson = from p in db.Person_Role where p.Role_ID == id select p; ViewBag.ErrorMsg = "Are you sure you want to delete?"; TempData["Disabled"] = false; if (rolePerson.Count() != 0) { ViewBag.ErrorMsg = "Role cannot be deleted becuase there are persons assigned to the role"; TempData["Disabled"] = true; return(View(roleEdit)); } Role r = db.Roles.Find(id); if (roleEdit.role == null) { return(HttpNotFound()); } if (roleEdit.role.Role_Name == "Super Admin") { ViewBag.ErrorMsg = "'Super Admin' role cannot be deleted"; TempData["Disabled"] = true; return(View(roleEdit)); } if (roleEdit.role.Role_Name == "Admin") { ViewBag.ErrorMsg = "'Admin' role cannot be deleted"; TempData["Disabled"] = true; return(View(roleEdit)); } db.Roles.Remove(r); foreach (var o in roleEdit.actionList) { Role_Action ra = db.Role_Action.Find(o.RoleAction_ID); db.Role_Action.Remove(ra); } db.SaveChanges(); return(RedirectToAction("Index")); } catch { return(View(roleEdit)); } }
public ActionResult Create(RoleModel role) { var RoleAction = db.Role_Action; RoleModel roleModel = new RoleModel(); roleModel.RoleActions = new List <RoleActionModel>(); foreach (var a in RoleAction) { RoleActionModel ra = new RoleActionModel(); ra.CreateInd = a.Create_Ind; ra.ReadInd = a.Read_Ind; ra.UpdateInd = a.Update_Ind; ra.DeleteInd = a.Delete_Ind; ra.ActionId = a.Action_ID; ra.RoleId = a.Role_ID; ra.ActionName = a.Action.Action_Name; roleModel.RoleActions.Add(ra); } var distinctActions = roleModel.RoleActions.GroupBy(x => x.ActionId) .Select(g => g.FirstOrDefault()) .ToList(); roleModel.RoleActions = distinctActions; try { int Count = 0; bool create = true; bool read = true; bool update = true; bool delete = true; ViewBag.ErrorMsg = ""; var query = (from q in db.Roles where q.Role_Name.ToLower() == role.RoleName.ToLower() select q); if (query.Count() != 0) { ViewBag.ErrorMsg = "The role name exists, please provide a different role name"; return(View(roleModel)); } Role r = new Role(); r.Role_Name = role.RoleName; db.Roles.Add(r); foreach (var o in role.RoleActions) { Role_Action ra = new Role_Action(); ra.Action_ID = o.ActionId; ra.Role_ID = r.Role_ID; ra.Create_Ind = o.CreateInd; ra.Read_Ind = o.ReadInd; ra.Update_Ind = o.UpdateInd; ra.Delete_Ind = o.DeleteInd; db.Role_Action.Add(ra); create = ra.Create_Ind; if (create == false) { Count++; } read = ra.Read_Ind; if (read == false) { Count++; } update = ra.Update_Ind; if (update == false) { Count++; } delete = ra.Delete_Ind; if (delete == false) { Count++; } if (Count == (role.RoleActions.Count() * 4)) { ViewBag.Error = "Role must be assigned at least 1 action"; return(View(roleModel)); } } db.SaveChanges(); return(RedirectToAction("Index", "Role")); } catch { return(View(roleModel)); } }
public ActionResult Edit(int id, RoleEditModel roleEdit) { int Count = 0; bool create = true; bool read = true; bool update = true; bool delete = true; try { ViewBag.ErrorMsg = ""; var query = (from q in db.Roles where q.Role_Name.ToLower() == roleEdit.role.Role_Name.ToLower() select q); if (query.Count() >= 2) { ViewBag.ErrorMsg = "The role name exists, please provide a different role name"; RoleEditModel roleModel = new RoleEditModel(); roleModel.role = db.Roles.Find(id); if (roleModel.role == null) { return(HttpNotFound()); } roleModel.actionList = db.Role_Action.Where( i => i.Role_ID == id).ToList(); return(View(roleModel)); } Role r = db.Roles.Find(id); r.Role_Name = roleEdit.role.Role_Name; db.Entry(r).State = EntityState.Modified; foreach (var o in roleEdit.actionList) { Role_Action ra = db.Role_Action.Find(o.RoleAction_ID); ra.Create_Ind = o.Create_Ind; ra.Read_Ind = o.Read_Ind; ra.Update_Ind = o.Update_Ind; ra.Delete_Ind = o.Delete_Ind; db.Entry(ra).State = EntityState.Modified; if (create == false) { Count++; } read = o.Read_Ind; if (read == false) { Count++; } update = o.Update_Ind; if (update == false) { Count++; } delete = o.Delete_Ind; if (delete == false) { Count++; } if (Count == (roleEdit.actionList.Count() * 4)) { ViewBag.Error = "Role must be assigned at least 1 action"; RoleEditModel roleModel = new RoleEditModel(); roleModel.role = db.Roles.Find(id); if (roleModel.role == null) { return(HttpNotFound()); } roleModel.actionList = db.Role_Action.Where( i => i.Role_ID == id).ToList(); return(View(roleModel)); } } db.SaveChanges(); return(RedirectToAction("Index", "Role")); } catch { RoleEditModel roleModel = new RoleEditModel(); roleModel.role = db.Roles.Find(id); if (roleModel.role == null) { return(HttpNotFound()); } roleModel.actionList = db.Role_Action.Where( i => i.Role_ID == id).ToList(); return(View(roleModel)); } }