コード例 #1
0
 /**
  * @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;
 }