public static function StoreSessionProjects($caller, $lists) { $sessionProjects = self::GetSessionProjects($caller->user()); //Init $sessionProjects if unset if (!isset($sessionProjects)) { $sessionProjects = array(); } foreach ($lists[\Library\Enums\SessionKeys::UserProjects] as $project) { $sessionProjects[\Library\Enums\SessionKeys::ProjectKey . $project->project_id()] = self::MakeSessionProject($project); if ($caller->user()->getAttribute(\Library\Enums\SessionKeys::UserRole == 2)) { PmHelper::AddAProjectIdToList($caller->user(), $project->project_id()); } } self::SetSessionProjects($caller->user(), $sessionProjects); foreach ($sessionProjects as $sessionProject) { $project_id = intval($sessionProject[\Library\Enums\SessionKeys::ProjectObject]->project_id()); $facility = CommonHelper::FindObjectByIntValue($project_id, "project_id", $lists[\Library\Enums\SessionKeys::UserProjectFacilityList]); $sessionProject[\Library\Enums\SessionKeys::FacilityObject] = $facility; $client = CommonHelper::FindObjectByIntValue($project_id, "project_id", $lists[\Library\Enums\SessionKeys::UserProjectClientList]); $sessionProject[\Library\Enums\SessionKeys::ClientObject] = $client; $sessionProjectUpdated = self::FillProjectSessionWithDataList($caller, $sessionProject); $sessionProjects[\Library\Enums\SessionKeys::ProjectKey . $project_id] = $sessionProjectUpdated; } self::SetSessionProjects($caller->user(), $sessionProjects); return $sessionProjects; }