/**
  * @Rest\Put("",
  *  condition="request.headers.get('content-type') matches '/domain-model=create-user/i'"
  * )
  * @Rest\View()
  *
  * @ParamConverter("userResource",
  *  class="AppBundle\Controller\Resource\User",
  *  converter="fos_rest.request_body"
  * )
  *
  * @param UserResource $userResource
  * @return View
  * @throws HttpException
  */
 public function createAction(UserResource $userResource)
 {
     $user = $this->userService->getUserByUserName($userResource->getUserName());
     if ($user != null) {
         return $this->viewBuilder->setStatus(204)->setVersion($user)->setLocation(static::BASE_ROUTE . $user->getId())->build();
     }
     $id = Uuid::createNew();
     $command = new CreateUser($id, $userResource->getUserName(), $userResource->getEmailAddress(), $userResource->getFullName());
     $this->commandBus->send($command);
     $user = $this->userService->getUser($id);
     return $this->viewBuilder->setDocument($user)->setVersion()->setLocation(static::BASE_ROUTE . $user->getId())->setStatus(201)->build();
 }