/**
  * @param WorkTime $workTime
  * @return WorkTimeDTO
  */
 public static function withEntity(WorkTime $workTime)
 {
     $dto = new WorkTimeDTO();
     $dto->setId($workTime->getId());
     $dto->setDescription($workTime->getDescription());
     $dto->setDuration($workTime->getDuration() ? $workTime->getDuration()->format('H:i') : null);
     $dto->setStartDate($workTime->getStartDate());
     $dto->setEndDate($workTime->getEndDate());
     $dto->setProject(ProjectDTO::withEntity($workTime->getProject()));
     return $dto;
 }
 /**
  * @param Project $project
  * @param bool|false $withWorkTime
  * @return ProjectDTO
  */
 public static function withEntity(Project $project, $withWorkTime = false)
 {
     $dto = new ProjectDTO();
     $dto->setId($project->getId());
     $dto->setDescription($project->getDescription());
     $dto->setHourlyRate($project->getHourlyRate());
     $dto->setTitle($project->getTitle());
     if ($withWorkTime) {
         foreach ($project->getWorkTimes() as $workTime) {
             $dto->addWorkTime(WorkTimeDTO::withEntity($workTime));
         }
     }
     return $dto;
 }
 /**
  * @param $userId
  * @param $workTimeId
  * @return WorkTimeDTO
  * @throws WorkTimeNotFoundException
  */
 public function findWorkTimeByUserAndId($userId, $workTimeId)
 {
     $workTime = $this->workTimeRepository->findWorkTimeByUserAndId($userId, $workTimeId);
     if ($workTime === null) {
         throw new WorkTimeNotFoundException();
     }
     return WorkTimeDTO::withEntity($workTime);
 }