public async Task <IHttpActionResult> ManageUsersInRole(UsersInRoleDto usersInRoleDto) { var role = await NdRoleManager.FindByIdAsync(usersInRoleDto.Id); if (role == null) { ModelState.AddModelError("", "Role does not exist"); return(BadRequest(ModelState)); } foreach (string user in usersInRoleDto.EnrolledUsers) { var ndUser = await NdUserManager.FindByIdAsync(user); if (ndUser == null) { ModelState.AddModelError("", string.Format("User: {0} does not exists", user)); continue; } if (!NdUserManager.IsInRole(user, role.Name)) { IdentityResult result = await NdUserManager.AddToRoleAsync(user, role.Name); if (!result.Succeeded) { ModelState.AddModelError("", string.Format("User: {0} could not be added to role", user)); } } } foreach (string user in usersInRoleDto.RemovedUsers) { var ndUser = await NdUserManager.FindByIdAsync(user); if (ndUser == null) { ModelState.AddModelError("", string.Format("User: {0} does not exists", user)); continue; } IdentityResult result = await NdUserManager.RemoveFromRoleAsync(user, role.Name); if (!result.Succeeded) { ModelState.AddModelError("", string.Format("User: {0} could not be removed from role", user)); } } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } return(Ok()); }
public async Task <IHttpActionResult> GetTherapistsByEmail([FromBody] string email) { _logger.Debug(string.Format("Begin. Email: [{0}]", email)); var therapistRole = await NdRoleManager.FindByNameAsync(Role.Therapist.ToString()); return(Ok(NdUserManager.Users .Where(x => x.Roles.Any(y => y.RoleId == therapistRole.Id) && x.Email.Contains(email)) .OrderBy(x => x.FirstName).ThenBy(x => x.LastName) .ToList().Select(x => _factory.CreateTherapist(x)))); }
public async Task <IHttpActionResult> GetTherapists() { _logger.Debug("Begin"); var therapistRole = await NdRoleManager.FindByNameAsync(Role.Therapist.ToString()); return(Ok(NdUserManager.Users .Where(x => x.Roles.Any(y => y.RoleId == therapistRole.Id)) .OrderBy(x => x.FirstName).ThenBy(x => x.LastName) .ToList().Select(x => _factory.CreateTherapist(x)))); }
public async Task <IHttpActionResult> GetRole(string Id) { var role = await NdRoleManager.FindByIdAsync(Id); if (role != null) { return(Ok(_factory.Create(role))); } return(NotFound()); }
public async Task <IHttpActionResult> GetTherapistInfo(string id) { _logger.Debug(string.Format("Begin. Id: [{0}]", id)); var user = await NdUserManager.FindByIdAsync(id); var therapistRole = await NdRoleManager.FindByNameAsync(Role.Therapist.ToString()); if (user != null && user.Roles.Any(x => x.RoleId == therapistRole.Id)) { _logger.Debug(string.Format("User found. Id: [{0}]", id)); return(Ok(_factory.CreateUserInfo(user))); } _logger.Debug(string.Format("Therapist was not found [id: {0}]", id)); return(NotFound()); }
public async Task <IHttpActionResult> DeleteRole(string Id) { var role = await NdRoleManager.FindByIdAsync(Id); if (role != null) { IdentityResult result = await NdRoleManager.DeleteAsync(role); if (!result.Succeeded) { return(GetErrorResult(result)); } return(Ok()); } return(NotFound()); }
public async Task <IHttpActionResult> Create(CreateRoleDto createRoleDto) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var role = new IdentityRole { Name = createRoleDto.Name }; var result = await NdRoleManager.CreateAsync(role); if (!result.Succeeded) { return(GetErrorResult(result)); } Uri locationHeader = new Uri(Url.Link("GetRoleById", new { id = role.Id })); return(Created(locationHeader, _factory.Create(role))); }