Beispiel #1
0
        // 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));
        }
Beispiel #2
0
 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());
     }
 }