Como passar o ViewModel complexo para a Camada de Serviço no ASP.NET MVC?

Digamos que eu tenho RegisterModel para registro de usuário e algum UserService que implementa IUserService

public interface IUserService
{
   User CreateUser(User newUser);
}


[HttpPost]
public ActionResult Register(RegisterModel model)
{
            if (ModelState.IsValid)
            {

                // ... logic for newuser

                User user = _userService.CreateUser(newuser);

               _authenticationService.SetAuthenticatedUser(user);

                return RedirectToRoute("Homepage");
            }

            return View(model);
        }

Dado que RegisterModel pode ser muito complexo, onde está a lógica para mapear o objeto RegisterModel para o usuário

questionAnswers(1)

yourAnswerToTheQuestion