public void HandleSaveRole() { if (SelectedRole.Id > 0) { DataService.UpdateObject(SelectedRole); } else { DataService.AddToRoles(SelectedRole); } var list = SelectedRole.Privileges.Except(SelectedPrivileges).ToList(); foreach (Privilege privilege in list) { DataService.DeleteLink(SelectedRole, "Privileges", privilege); SelectedRole.Privileges.Remove(privilege); } list = SelectedPrivileges.Except(SelectedRole.Privileges).ToList(); foreach (Privilege privilege in list) { DataService.AddLink(SelectedRole, "Privileges", privilege); SelectedRole.Privileges.Add(privilege); } DataService.SaveChanges(); SelectedRole = null; ResetRoleList(); }
public ActionResult PostRolePrivileges([FromBody] RolePrivilegesView rolePrivileges) { Roles role = new Roles(); bool roleExist = _context.Roles.Any(obj => obj.Name == rolePrivileges.RoleName); if (!roleExist) { role.Name = rolePrivileges.RoleName; _context.Roles.Add(role); _context.SaveChanges(); } else if (roleExist) { role = _context.Roles.Where(obj => obj.Name == rolePrivileges.RoleName).FirstOrDefault(); } for (int i = 0; i < rolePrivileges.selectedPrivileges.Count; i++) { SelectedPrivileges selectedPrivilege = new SelectedPrivileges(); selectedPrivilege.DistributorId = rolePrivileges.distId; selectedPrivilege.RoleId = role.Id; selectedPrivilege.PrivilgeId = getPrivilegesId(rolePrivileges.selectedPrivileges[i]); _context.RolePrivileges.Add(selectedPrivilege); _context.SaveChanges(); } var dataList = (from Role in _context.Roles join rolePrivilege in _context.RolePrivileges on Role.Id equals rolePrivilege.RoleId where rolePrivilege.DistributorId == rolePrivileges.distId join privilege in _context.Privileges on rolePrivilege.PrivilgeId equals privilege.Id orderby Role.Name select new { role = Role, Privilege = privilege }).ToList(); return(Ok(new { AssignRolePrivilegesStatus = "Success", RolePrivilegesList = dataList })); }
public ActionResult PutPrivileges([FromRoute] int id, [FromBody] RolePrivilegesView rolePrivileges) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (rolePrivileges.selectedPrivileges.Count <= rolePrivileges.rolePrivilegeId.Count) { for (int i = 0; i < rolePrivileges.selectedPrivileges.Count; i++) { SelectedPrivileges updated = new SelectedPrivileges(); updated.Id = rolePrivileges.rolePrivilegeId[i]; updated.DistributorId = id;//rolePrivileges.distId; updated.RoleId = getRoleId(rolePrivileges.RoleName); updated.PrivilgeId = getPrivilegesId(rolePrivileges.selectedPrivileges[i]); _context.RolePrivileges.Update(updated); _context.SaveChanges(); } if (rolePrivileges.selectedPrivileges.Count < rolePrivileges.rolePrivilegeId.Count) { for (int i = rolePrivileges.selectedPrivileges.Count; i < rolePrivileges.rolePrivilegeId.Count; i++) { SelectedPrivileges privilegeBeingDeleted = _context.RolePrivileges.Find(rolePrivileges.rolePrivilegeId[i]); _context.RolePrivileges.Remove(privilegeBeingDeleted); } } _context.SaveChanges(); } else if (rolePrivileges.selectedPrivileges.Count > rolePrivileges.rolePrivilegeId.Count) { for (int i = 0; i < rolePrivileges.rolePrivilegeId.Count; i++) { SelectedPrivileges updated = new SelectedPrivileges(); updated.Id = rolePrivileges.rolePrivilegeId[i]; updated.DistributorId = id;//rolePrivileges.distId; updated.RoleId = getRoleId(rolePrivileges.RoleName); updated.PrivilgeId = getPrivilegesId(rolePrivileges.selectedPrivileges[i]); _context.RolePrivileges.Update(updated); } for (int i = rolePrivileges.rolePrivilegeId.Count; i < rolePrivileges.selectedPrivileges.Count; i++) { SelectedPrivileges assignNew = new SelectedPrivileges(); assignNew.DistributorId = id; assignNew.RoleId = getRoleId(rolePrivileges.RoleName); assignNew.PrivilgeId = getPrivilegesId(rolePrivileges.selectedPrivileges[i]); _context.RolePrivileges.Add(assignNew); _context.SaveChanges(); } } //if (id != privileges.Id) //{ // return BadRequest(); //} //_context.Entry(privileges).State = EntityState.Modified; //try //{ // await _context.SaveChangesAsync(); //} //catch (DbUpdateConcurrencyException) //{ // if (!PrivilegesExists(id)) // { // return NotFound(); // } // else // { // throw; // } //} var dataList = (from Role in _context.Roles join rolePrivilege in _context.RolePrivileges on Role.Id equals rolePrivilege.RoleId where rolePrivilege.DistributorId == id join privilege in _context.Privileges on rolePrivilege.PrivilgeId equals privilege.Id orderby Role.Name select new { role = Role, Privilege = privilege, rolePrv = rolePrivilege }).ToList(); return(Ok(new { updateRolePrivilegesStatus = "UpdateSuccess", RolePrivilegesList = dataList })); }