// POST api/Account/ChangeUserName public async Task <IHttpActionResult> ChangeUserName(ChangeUserNameBindingModel model) { // Get the user var currentUser = await UserManager.FindByIdAsync(this.GetCurrentUserId().Value); var result = await UserManager.ChangeUserName(currentUser.Id, model.UserName); var errorResult = GetErrorResult(result); if (errorResult != null) { return(errorResult); } return(Ok(currentUser)); }
public IHttpActionResult ChangeUsername( [FromBody] ChangeUserNameBindingModel model) { if (model.UserName == null) { return(BadRequest()); } try { var userName = JwtManager.GetUserNameFromToken( Request.Headers.Authorization.Parameter); var user = UnitOfWork.UserRepository.GetByName(userName); if (user == null) { return(NotFound()); } if (UnitOfWork.UserRepository.GetByName(model.UserName) != null) { return(Conflict()); } user.UserName = model.UserName; /** todo: change hotfix with roles to another decision of fixing exception */ user.UserRole = UnitOfWork.RoleRepository.Get("User"); UnitOfWork.UserRepository.Update(user); UnitOfWork.Save(); return(Ok(new { Token = JwtManager.GenerateToken(user.UserName, user.PasswordHash), user.UserName } )); } catch (Exception) { return(InternalServerError()); } }