/** * Helper to build season and competition for a match from raw data * * @param Match $o_match * @param DataRow $o_row * @param CollectionBuilder $season_builder */ private function BuildSeason(Match $o_match, $o_row, $season_builder = null) { if (isset($o_row->season_id) and (is_null($season_builder) or !$season_builder->IsDone($o_row->season_id))) { $o_season = $o_match->Seasons()->GetItemByProperty('GetId', (int) $o_row->season_id); $b_existing_season = is_object($o_season); if (!$b_existing_season) { $o_season = new Season($this->GetSettings()); } $o_season->SetId($o_row->season_id); if (isset($o_row->season_name)) { $o_season->SetName($o_row->season_name); } if (isset($o_row->season_short_url)) { $o_season->SetShortUrl($o_row->season_short_url); } if (isset($o_row->start_year)) { $o_season->SetStartYear($o_row->start_year); } if (isset($o_row->end_year)) { $o_season->SetEndYear($o_row->end_year); } $o_comp = new Competition($this->GetSettings()); if (isset($o_row->competition_id)) { $o_comp->SetId($o_row->competition_id); } if (isset($o_row->competition_name)) { $o_comp->SetName($o_row->competition_name); } if (isset($o_row->notification_email)) { $o_comp->SetNotificationEmail($o_row->notification_email); } $o_comp->Add($o_season); if (!$b_existing_season) { $o_match->Seasons()->Add($o_season); } } }