Example #1
0
 private function assertEvent(Event $event, $uid, $start, $end, $isAllDay, $name, $description)
 {
     $this->assertSame($uid, $event->getUid());
     $this->assertSame($start, $event->getStart()->format(\DateTime::ISO8601));
     $this->assertSame($end, $event->getEnd()->format(\DateTime::ISO8601));
     $this->assertSame($isAllDay, $event->isAllDay());
     $this->assertSame($name, $event->getName());
     $this->assertSame($description, $event->getDescription());
 }
Example #2
0
 /**
  * Compare two events to sort them by date (and whether they are repetitions)
  * This is mostly for debugging
  * @param \Application\Model\Event $event
  * @return int
  */
 public function compare(Event $event)
 {
     // Keep repetitions at the end of the list
     if ($this->getOriginal() && !$event->getOriginal()) {
         return 1;
     } elseif (!$this->getOriginal() && $event->getOriginal()) {
         return -1;
     }
     $s1 = $this->getStart();
     $s2 = $event->getStart();
     $e1 = $this->getEnd();
     $e2 = $event->getEnd();
     // First compare start date
     if ($s1 > $s2) {
         return 1;
     } elseif ($s1 < $s2) {
         return -1;
     }
     // Then end date
     if ($e1 > $e2) {
         return 1;
     } elseif ($e1 < $e2) {
         return -1;
     }
     // Finally full day events come first
     if ($this->isAllDay() && !$event->isAllDay()) {
         return 1;
     } elseif (!$this->isAllDay() && $event->isAllDay()) {
         return -1;
     }
     return 0;
 }
Example #3
0
 /**
  * Add date to the vevent
  * @param Event $event
  * @param VEvent $vevent
  * @param string $name name of property
  * @param \DateTimeImmutable $date
  */
 private function addDate(Event $event, VEvent $vevent, $name, \DateTimeImmutable $date)
 {
     if ($date) {
         $dtstart = $vevent->add($name, $date);
         if ($event->isAllDay()) {
             $dtstart['VALUE'] = 'DATE';
         }
     }
 }