/**
  * @param SavePhotoRequest $request
  * @return Photo
  */
 private function createPhotoBy(SavePhotoRequest $request)
 {
     $resourceId = new ResourceId($request->resourceId());
     $photoName = new PhotoName($request->name());
     $photoFile = new PhotoFile($request->file());
     $photoId = $this->repository->ensureUniquePhotoId();
     return new Photo($photoId, $resourceId, $photoName, $this->storage->getPhotoHttpUrlBy($photoId, $resourceId, $photoName, $photoFile), new PhotoAltCollection([new PhotoAlt($photoId, $request->alt(), new Lang($request->lang()))]), new Position($request->position()), $photoFile);
 }