/**
  * @param LearningMaterialInterface $learningMaterial
  * @param Router $router
  */
 public function __construct(LearningMaterialInterface $learningMaterial, Router $router)
 {
     if ($learningMaterial->getFilename()) {
         $link = $router->generate('ilios_core_downloadlearningmaterial', ['token' => $learningMaterial->getToken()], UrlGenerator::ABSOLUTE_URL);
         $this->absoluteFileUri = $link;
     }
     $this->id = $learningMaterial->getId();
     $this->title = $learningMaterial->getTitle();
     $this->description = $learningMaterial->getDescription();
     $this->uploadDate = $learningMaterial->getUploadDate();
     $this->originalAuthor = $learningMaterial->getOriginalAuthor();
     $this->userRole = (string) $learningMaterial->getUserRole();
     $this->status = (string) $learningMaterial->getStatus();
     $this->owningUser = (string) $learningMaterial->getOwningUser();
     $this->citation = $learningMaterial->getCitation();
     $this->copyrightPermission = $learningMaterial->hasCopyrightPermission();
     $this->copyrightRationale = $learningMaterial->getCopyrightRationale();
     $this->mimetype = $learningMaterial->getMimetype();
     $this->filesize = $learningMaterial->getFilesize();
     $this->filename = $learningMaterial->getFilename();
     $this->link = $learningMaterial->getLink();
     $courseLearningMaterialIds = $learningMaterial->getCourseLearningMaterials()->map(function (CourseLearningMaterialInterface $lm) {
         return (string) $lm;
     });
     $this->courseLearningMaterials = $courseLearningMaterialIds->toArray();
     $sessionLearningMaterialIds = $learningMaterial->getSessionLearningMaterials()->map(function (SessionLearningMaterialInterface $lm) {
         return (string) $lm;
     });
     $this->sessionLearningMaterials = $sessionLearningMaterialIds->toArray();
 }