/** * @static * @param $row array * @return ReservationItemView */ public static function Populate($row) { $view = new ReservationItemView($row[ColumnNames::REFERENCE_NUMBER], Date::FromDatabase($row[ColumnNames::RESERVATION_START]), Date::FromDatabase($row[ColumnNames::RESERVATION_END]), $row[ColumnNames::RESOURCE_NAME], $row[ColumnNames::RESOURCE_ID], $row[ColumnNames::RESERVATION_INSTANCE_ID], $row[ColumnNames::RESERVATION_USER_LEVEL], $row[ColumnNames::RESERVATION_TITLE], $row[ColumnNames::RESERVATION_DESCRIPTION], $row[ColumnNames::SCHEDULE_ID], $row[ColumnNames::OWNER_FIRST_NAME], $row[ColumnNames::OWNER_LAST_NAME], $row[ColumnNames::OWNER_USER_ID], $row[ColumnNames::OWNER_PHONE], $row[ColumnNames::OWNER_ORGANIZATION], $row[ColumnNames::OWNER_POSITION], $row[ColumnNames::PARTICIPANT_LIST], $row[ColumnNames::INVITEE_LIST], $row[ColumnNames::ATTRIBUTE_LIST], $row[ColumnNames::USER_PREFERENCES], $row[ColumnNames::RESERVATION_STATUS]); if (isset($row[ColumnNames::RESERVATION_CREATED])) { $view->CreatedDate = Date::FromDatabase($row[ColumnNames::RESERVATION_CREATED]); $view->DateCreated = Date::FromDatabase($row[ColumnNames::RESERVATION_CREATED]); } if (isset($row[ColumnNames::RESERVATION_MODIFIED])) { $view->ModifiedDate = Date::FromDatabase($row[ColumnNames::RESERVATION_MODIFIED]); } if (isset($row[ColumnNames::REPEAT_TYPE])) { $repeatConfig = RepeatConfiguration::Create($row[ColumnNames::REPEAT_TYPE], $row[ColumnNames::REPEAT_OPTIONS]); $view->RepeatType = $repeatConfig->Type; $view->RepeatInterval = $repeatConfig->Interval; $view->RepeatWeekdays = $repeatConfig->Weekdays; $view->RepeatMonthlyType = $repeatConfig->MonthlyType; $view->RepeatTerminationDate = $repeatConfig->TerminationDate; $view->IsRecurring = $row[ColumnNames::REPEAT_TYPE] != RepeatType::None; } if (isset($row[ColumnNames::RESERVATION_STATUS])) { $view->RequiresApproval = $row[ColumnNames::RESERVATION_STATUS] == ReservationStatus::Pending; } if (isset($row[ColumnNames::EMAIL])) { $view->OwnerEmailAddress = $row[ColumnNames::EMAIL]; } if (isset($row[ColumnNames::SERIES_ID])) { $view->SeriesId = $row[ColumnNames::SERIES_ID]; } if (isset($row[ColumnNames::RESOURCE_STATUS_REASON_ID])) { $view->ResourceStatusReasonId = $row[ColumnNames::RESOURCE_STATUS_REASON_ID]; } if (isset($row[ColumnNames::RESOURCE_STATUS_ID_ALIAS])) { $view->ResourceStatusId = $row[ColumnNames::RESOURCE_STATUS_ID_ALIAS]; } if (isset($row[ColumnNames::RESOURCE_BUFFER_TIME])) { $view->WithBufferTime($row[ColumnNames::RESOURCE_BUFFER_TIME]); } if (isset($row[ColumnNames::GROUP_LIST])) { $view->WithOwnerGroupIds(explode(',', $row[ColumnNames::GROUP_LIST])); } if (isset($row[ColumnNames::START_REMINDER_MINUTES_PRIOR])) { $view->StartReminder = new ReservationReminderView($row[ColumnNames::START_REMINDER_MINUTES_PRIOR]); } if (isset($row[ColumnNames::END_REMINDER_MINUTES_PRIOR])) { $view->EndReminder = new ReservationReminderView($row[ColumnNames::END_REMINDER_MINUTES_PRIOR]); } return $view; }