/**
  * @param RepositoryRequest $request
  * @param bool|false $resetRuntimeProperties
  * @return string
  */
 public function createFrom(RepositoryRequest $request, $resetRuntimeProperties = false)
 {
     return $this->create(array(self::KEY_APPLICANT_NAME => $request->applicantName(), self::KEY_NAME => $request->name(), self::KEY_OCCURRED_ON => $request->occurredOn()->getTimestamp()), $resetRuntimeProperties);
 }
    //begin of process
    $collection = $storage->readMany();
    $content = array();
    foreach ($collection as $repositoryRequest) {
        $content[] = array('name' => $repositoryRequest->name());
    }
    return $application->json($content);
    //end of process
});
$application->post('/unique-number-repository', function (Application $application, Request $request) use($locator) {
    //begin of runtime parameters
    $name = urldecode($request->get('repository_name'));
    $user = urldecode($request->get('applicant_name'));
    //end of runtime parameters
    //begin of dependencies
    $repositoryRequest = new RepositoryRequest($user, $name, new DateTime());
    $storage = $locator->getRepositoryStorage();
    //end of dependencies
    //begin of validation
    $storage->resetRuntimeProperties();
    $storage->filterByName($repositoryRequest->name());
    $repositoryNameExistsAlready = $storage->has();
    if ($repositoryNameExistsAlready) {
        $application->abort(400, 'repository name exists already');
    }
    $storage->resetRuntimeProperties();
    //end of validation
    //begin of process
    $createdId = $storage->createFrom($repositoryRequest);
    return $application->json(array('id' => $createdId));
    //end of process