protected void addChildCalendarBookings( CalendarBooking calendarBooking, long[] childCalendarIds, ServiceContext serviceContext) throws PortalException, SystemException { if (!calendarBooking.isMasterBooking()) { return; } List<CalendarBooking> childCalendarBookings = calendarBookingPersistence.findByParentCalendarBookingId( calendarBooking.getCalendarBookingId()); for (CalendarBooking childCalendarBooking : childCalendarBookings) { if (childCalendarBooking.isMasterBooking() || ArrayUtil.contains(childCalendarIds, childCalendarBooking.getCalendarId())) { continue; } deleteCalendarBooking(childCalendarBooking.getCalendarBookingId()); } for (long calendarId : childCalendarIds) { int count = calendarBookingPersistence.countByC_P(calendarId, calendarBooking.getCalendarBookingId()); if (count > 0) { continue; } CalendarBooking childCalendarBooking = addCalendarBooking( calendarBooking.getUserId(), calendarId, new long[0], calendarBooking.getCalendarBookingId(), calendarBooking.getTitleMap(), calendarBooking.getDescriptionMap(), calendarBooking.getLocation(), calendarBooking.getStartDate(), calendarBooking.getEndDate(), calendarBooking.getAllDay(), calendarBooking.getRecurrence(), calendarBooking.getFirstReminder(), calendarBooking.getFirstReminderType(), calendarBooking.getSecondReminder(), calendarBooking.getSecondReminderType(), serviceContext); try { NotificationType notificationType = NotificationType.parse(PortletPropsValues.CALENDAR_NOTIFICATION_DEFAULT_TYPE); NotificationUtil.notifyCalendarBookingInvites(childCalendarBooking, notificationType); } catch (Exception e) { } } }