public RoleAccessPathsDto GetAccessPathsForRole(string roleId) { var result = new RoleAccessPathsDto(); var role = _identityRepository.GetRoleById(roleId); if (role != null) { result.RoleId = role.Id; result.Rolename = role.Name; var roleAccessPaths = _identityRepository.GetAccessPathsByRoleId(roleId).ToList(); foreach (var roleAccessPath in roleAccessPaths) { result.AccessPaths.Add(new AccessPathDto { ParentId = roleAccessPath.AccessPath.ParentId, Id = roleAccessPath.AccessPathId, Title = roleAccessPath.AccessPath.Title, Priority = roleAccessPath.AccessPath.Priority, Path = roleAccessPath.AccessPath.Path }); } } return(result); }
public IHttpActionResult Update(RoleAccessPathsDto roleAccessPaths) { if (roleAccessPaths.RoleId == null) { return(BadRequest()); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } try { _authService.UpdateRoleAccessPaths(roleAccessPaths); return(Ok(new { message = "count: " + roleAccessPaths.AccessPaths.Count + " access path(s) assigned" })); } catch (LogicalException ex) { return(BadRequest(ex.Message)); } catch (TransactionAbortedException ex) { return(BadRequest(ex.Message)); } catch { return(BadRequest(AppSettings.INTERNAL_SERVER_ERROR_MESSAGE)); } }
public void UpdateRoleAccessPaths(RoleAccessPathsDto roleAccessPaths) { string roleId = roleAccessPaths.RoleId; using (var scope = new TransactionScope()) { var accessPathIds = roleAccessPaths.AccessPaths.Select(x => x.Id).ToList(); //remove all RemoveAllRoleAccessPaths(roleId); //add new ones AddRoleAccessPaths(roleId, accessPathIds); scope.Complete(); } }