public async Task <bool> EditAdvancedAsync(EditAdvancedDetailsRequestModel request) { if (request.IsNotSpecified()) { throw new WebApiException(HttpStatusCode.BadRequest, UserErrorMessage.MissingUsersInformation); } if (request.UserId.IsNotSpecified()) { throw new WebApiException(HttpStatusCode.BadRequest, UserErrorMessage.MissingUsersInformation); } if (request.FirstName.IsNotSpecified()) { throw new WebApiException(HttpStatusCode.BadRequest, UserErrorMessage.MissingUsersInformation); } if (request.LastName.IsNotSpecified()) { throw new WebApiException(HttpStatusCode.BadRequest, UserErrorMessage.MissingUsersInformation); } if (request.RoleId.IsNotSpecified()) { throw new WebApiException(HttpStatusCode.BadRequest, UserErrorMessage.MissingUsersInformation); } if (await UserExists(request.UserId).ConfigureAwait(true) == false) { throw new WebApiException(HttpStatusCode.BadRequest, UserErrorMessage.UserNotActive); } if (await RoleExists(request.RoleId).ConfigureAwait(true) == false) { throw new WebApiException(HttpStatusCode.BadRequest, UserErrorMessage.IncorrectUserRole); } return(await m_userRepository.EditAdvancedAsync(request).ConfigureAwait(true)); }
private async Task ChangeUserRole(EditAdvancedDetailsRequestModel request, ApplicationUser userForUpdate) { var userRoles = await m_userManager.GetRolesAsync(userForUpdate); ApplicationRole newUserRole = await m_roleManager.FindByIdAsync(request.RoleId.ToString()).ConfigureAwait(true); await m_userManager.RemoveFromRoleAsync(userForUpdate, userRoles.FirstOrDefault()).ConfigureAwait(true);; await m_userManager.AddToRoleAsync(userForUpdate, newUserRole.Name).ConfigureAwait(true); }
public async Task <bool> EditAdvancedAsync(EditAdvancedDetailsRequestModel request) { ApplicationUser userForUpdate = await m_userManager.Users.FirstOrDefaultAsync(u => u.Id == request.UserId).ConfigureAwait(true); userForUpdate.FirstName = request.FirstName; userForUpdate.LastName = request.LastName; userForUpdate.PhoneNumber = request.Phone; await ChangeUserRole(request, userForUpdate); IdentityResult result = await m_userManager.UpdateAsync(userForUpdate).ConfigureAwait(true); return(result.Succeeded ? true : throw new WebApiException(HttpStatusCode.InternalServerError, UserErrorMessage.CouldNotUpdateUser)); }
public async Task <IActionResult> EditAdvanced([FromBody] EditAdvancedDetailsRequestModel request) { return(Ok(await _userService.EditAdvancedAsync(request).ConfigureAwait(true))); }