示例#1
0
 public function postNew()
 {
     $NewModel = Input::json('models.0');
     $startDatetime = new DateTime();
     $endDatetime = new DateTime();
     $Eastern = new DateTimeZone('America/Detroit');
     $startDatetime->setTimezone($Eastern);
     $endDatetime->setTimezone($Eastern);
     $startDatetime->setTimestamp(strtotime($NewModel['Start']));
     $endDatetime->setTimestamp(strtotime($NewModel['End']));
     $newSpecialRoom = new SpecialRoom();
     $newSpecialRoom->RoomId = $NewModel['RoomId'];
     $newSpecialRoom->Title = $NewModel['Title'];
     $newSpecialRoom->Start = $startDatetime->format('Y-m-d H:i:s');
     $newSpecialRoom->End = $endDatetime->format('Y-m-d H:i:s');
     $newSpecialRoom->Attendee = $NewModel['Attendee'];
     $newSpecialRoom->Host = $NewModel['Host'];
     $newSpecialRoom->RecurrenceId = $NewModel['RecurrenceId'];
     if (array_key_exists('RecurrenceRule', $NewModel)) {
         $newSpecialRoom->RecurrenceRule = $NewModel['RecurrenceRule'];
     }
     $newSpecialRoom->RecurrenceException = $NewModel['RecurrenceException'];
     $newSpecialRoom->save();
     return $newSpecialRoom->toJson();
 }
 private function createEvent($class, $classBlock, &$response)
 {
     $startDatetime = new DateTime();
     $endDatetime = new DateTime();
     // get the first day of the semester
     $firstDayOfClass = strtotime('next ' . $classBlock['day'], $this->dayBeforeSemesterStart);
     // the kendo front end library must be on a different timezone setting,
     // because all db times that are used by kendo calendars need to be 4-5
     // (5 if daylight savings time is not currently in effect) hours earlier
     // than the time displayed by kendo
     $kendoReadjust = 5 - date('I');
     $startDatetime->setTimestamp($firstDayOfClass + 60 * (60 * ($classBlock['startT']['H'] - $kendoReadjust) + $classBlock['startT']['M']));
     $endDatetime->setTimestamp($firstDayOfClass + 60 * (60 * ($classBlock['endT']['H'] - $kendoReadjust) + $classBlock['endT']['M']));
     $room = CeasRooms::where('name', '=', $classBlock['room'])->first();
     if ($room) {
         switch ($room->type) {
             case "1":
                 $newClassroom = new Classroom();
                 break;
             case "2":
                 $newClassroom = new ComputerClassroom();
                 break;
             case "3":
                 $newClassroom = new BreakoutRoom();
                 break;
             case "4":
                 $newClassroom = new SpecialRoom();
                 break;
             default:
                 return;
         }
         $newClassroom->RoomId = $room->id;
         $newClassroom->Title = $class;
         $newClassroom->Start = $startDatetime->format('Y-m-d H:i:s');
         $newClassroom->End = $endDatetime->format('Y-m-d H:i:s');
         $newClassroom->RecurrenceRule = "FREQ=WEEKLY;UNTIL=" . date("Y-m-d\\TH:i:s\\Z", $this->dayAfterLastDayOfSemester) . ";BYDAY=" . substr($classBlock['day'], 0, 2);
         $newClassroom->attendee = 1;
         $newClassroom->save();
     } else {
         if (!in_array($classBlock['room'], $response["nonExistantRooms"])) {
             array_push($response["nonExistantRooms"], $classBlock['room']);
         }
     }
 }