Пример #1
0
 public function createRoom()
 {
     $newModelName = Input::get('name');
     $existingRoom = CeasRooms::where('name', '=', $newModelName)->first();
     if ($existingRoom == null) {
         $newRoom = new CeasRooms();
         $newRoom->name = $newModelName;
         $newRoom->capacity = 0;
         $newRoom->type = 5;
         $newRoom->save();
         return $newRoom->toJSON();
     } else {
         return "Room Already Exists";
     }
 }
Пример #2
0
 private function getEventsForRoom($roomNumber)
 {
     $roomInfo = CeasRooms::where('name', '=', $roomNumber)->first();
     if ($roomInfo !== null) {
         switch ($roomInfo->type) {
             case 1:
                 $events = Classroom::where('RoomId', '=', $roomInfo->id)->get();
                 break;
             case 2:
                 $events = ComputerClassroom::where('RoomId', '=', $roomInfo->id)->get();
                 break;
             case 3:
                 $events = BreakoutRoom::where('RoomId', '=', $roomInfo->id)->get();
                 break;
             case 4:
                 $events = SpecialRoom::where('RoomId', '=', $roomInfo->id)->get();
                 break;
             default:
                 $events = array();
                 break;
         }
         return $events;
     } else {
         return array();
     }
 }
Пример #3
0
 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']);
         }
     }
 }