public function create($name, $type, $description, $applicationWebsite, User $creator = null, $redirectUri = null)
 {
     $application = new ApiApplication();
     $application->setCreator($creator);
     $application->setName($name);
     $application->setDescription($description);
     $this->doSetType($application, $type);
     $this->doSetWebsiteUrl($application, $applicationWebsite);
     $this->doSetRedirectUri($application, $redirectUri);
     $application->setNonce($this->randomGenerator->generateString(64));
     $application->setClientId($this->randomGenerator->generateString(32, TokenManipulator::LETTERS_AND_NUMBERS));
     $application->setClientSecret($this->randomGenerator->generateString(32, TokenManipulator::LETTERS_AND_NUMBERS));
     $this->om->persist($application);
     $this->om->flush();
     return $application;
 }