Example usage for com.liferay.portal.kernel.util TimeZoneUtil getDefault

List of usage examples for com.liferay.portal.kernel.util TimeZoneUtil getDefault

Introduction

In this page you can find the example usage for com.liferay.portal.kernel.util TimeZoneUtil getDefault.

Prototype

public static TimeZone getDefault() 

Source Link

Usage

From source file:com.liferay.asset.publisher.web.internal.exportimport.portlet.preferences.processor.AssetPublisherExportImportPortletPreferencesProcessor.java

License:Open Source License

protected void exportAssetObjects(PortletDataContext portletDataContext, PortletPreferences portletPreferences)
        throws Exception {

    List<AssetEntry> assetEntries = null;

    Layout layout = _layoutLocalService.getLayout(portletDataContext.getPlid());

    String selectionStyle = portletPreferences.getValue("selectionStyle", "dynamic");

    if (selectionStyle.equals("dynamic")) {
        if (!_assetPublisherWebConfiguration.dynamicExportEnabled()) {
            return;
        }//w ww.  j  ava 2  s.  com

        AssetEntryQuery assetEntryQuery = getAssetEntryQuery(layout, portletDataContext.getCompanyGroupId(),
                portletDataContext.getScopeGroupId(), portletPreferences);

        long assetVocabularyId = GetterUtil.getLong(portletPreferences.getValue("assetVocabularyId", null));

        if (assetVocabularyId > 0) {
            mergeAnyCategoryIds(assetEntryQuery, assetVocabularyId);

            if (ArrayUtil.isEmpty(assetEntryQuery.getAnyCategoryIds())) {
                return;
            }
        }

        BaseModelSearchResult<AssetEntry> baseModelSearchResult = AssetPublisherUtil.getAssetEntries(
                assetEntryQuery, layout, portletPreferences, AssetPublisherPortletKeys.ASSET_PUBLISHER,
                LocaleUtil.getDefault(), TimeZoneUtil.getDefault(), portletDataContext.getCompanyId(),
                portletDataContext.getScopeGroupId(), UserConstants.USER_ID_DEFAULT,
                new HashMap<String, Serializable>(), assetEntryQuery.getStart(), assetEntryQuery.getEnd());

        assetEntries = baseModelSearchResult.getBaseModels();
    } else {
        if (!_assetPublisherWebConfiguration.manualExportEnabled()) {
            return;
        }

        long[] groupIds = AssetPublisherUtil.getGroupIds(portletPreferences,
                portletDataContext.getScopeGroupId(), layout);

        assetEntries = AssetPublisherUtil.getAssetEntries(null, portletPreferences,
                PermissionThreadLocal.getPermissionChecker(), groupIds, false, false);
    }

    for (AssetEntry assetEntry : assetEntries) {
        AssetRenderer<?> assetRenderer = assetEntry.getAssetRenderer();

        if ((assetRenderer == null) || !(assetRenderer.getAssetObject() instanceof StagedModel)) {

            continue;
        }

        StagedModelDataHandlerUtil.exportReferenceStagedModel(portletDataContext,
                portletDataContext.getPortletId(), (StagedModel) assetRenderer.getAssetObject());
    }
}

From source file:com.liferay.calendar.model.impl.CalendarResourceImpl.java

License:Open Source License

@Override
public TimeZone getTimeZone() throws PortalException {
    if (isUser()) {
        User user = UserServiceUtil.getUserById(getClassPK());

        return user.getTimeZone();
    }/*from  w  w  w  .j a  va  2  s  .c o m*/

    return TimeZoneUtil.getDefault();
}

From source file:com.liferay.calendar.service.impl.CalendarEventLocalServiceImpl.java

License:Open Source License

public CalendarEvent addCalendarEvent(long userId, Map<Locale, String> titleMap,
        Map<Locale, String> descriptionMap, String location, int startDateMonth, int startDateDay,
        int startDateYear, int startDateHour, int startDateMinute, int endDateMonth, int endDateDay,
        int endDateYear, int endDateHour, int endDateMinute, int durationHour, int durationMinute,
        boolean allDay, String recurrence, String type, int remindBy, int firstReminder, int secondReminder,
        ServiceContext serviceContext) throws PortalException, SystemException {

    // Calendar event

    User user = userPersistence.findByPrimaryKey(userId);
    long groupId = serviceContext.getScopeGroupId();

    if (allDay) {
        startDateHour = 0;//from ww w .  j a v  a2s . c  om
        startDateMinute = 0;
        endDateHour = 23;
        endDateMinute = 59;
        durationHour = 23;
        durationMinute = 59;
    }

    Date startDate = PortalUtil.getDate(startDateMonth, startDateDay, startDateYear, startDateHour,
            startDateMinute, TimeZoneUtil.getDefault(), null);
    Date endDate = PortalUtil.getDate(endDateMonth, endDateDay, endDateYear, endDateHour, endDateMinute,
            TimeZoneUtil.getDefault(), null);
    Date now = new Date();

    validate(titleMap, startDateMonth, startDateDay, startDateYear, endDateMonth, endDateDay, endDateYear,
            durationHour, durationMinute, allDay);

    long calendarEventId = counterLocalService.increment();

    CalendarEvent calendarEvent = calendarEventPersistence.create(calendarEventId);

    calendarEvent.setUuid(serviceContext.getUuid());
    calendarEvent.setGroupId(groupId);
    calendarEvent.setCompanyId(user.getCompanyId());
    calendarEvent.setUserId(user.getUserId());
    calendarEvent.setUserName(user.getFullName());
    calendarEvent.setCreateDate(serviceContext.getCreateDate(now));
    calendarEvent.setModifiedDate(serviceContext.getModifiedDate(now));
    calendarEvent.setTitleMap(titleMap);
    calendarEvent.setDescriptionMap(descriptionMap);
    calendarEvent.setLocation(location);
    calendarEvent.setStartDate(startDate);
    calendarEvent.setEndDate(endDate);
    calendarEvent.setDurationHour(durationHour);
    calendarEvent.setDurationMinute(durationMinute);
    calendarEvent.setAllDay(allDay);
    calendarEvent.setRecurrence(recurrence);
    calendarEvent.setType(type);
    calendarEvent.setRemindBy(remindBy);
    calendarEvent.setFirstReminder(firstReminder);
    calendarEvent.setSecondReminder(secondReminder);
    calendarEvent.setExpandoBridgeAttributes(serviceContext);

    calendarEventPersistence.update(calendarEvent, false);

    // Resources

    resourceLocalService.addModelResources(calendarEvent, serviceContext);

    return calendarEvent;
}

From source file:com.liferay.calendar.service.impl.CalendarEventLocalServiceImpl.java

License:Open Source License

public CalendarEvent updateCalendarEvent(long calendarEventId, Map<Locale, String> titleMap,
        Map<Locale, String> descriptionMap, String location, int startDateMonth, int startDateDay,
        int startDateYear, int startDateHour, int startDateMinute, int endDateMonth, int endDateDay,
        int endDateYear, int endDateHour, int endDateMinute, int durationHour, int durationMinute,
        boolean allDay, String recurrence, String type, int remindBy, int firstReminder, int secondReminder,
        ServiceContext serviceContext) throws PortalException, SystemException {

    // Calendar event

    if (allDay) {
        startDateHour = 0;/*from   w  w  w .j a v a  2  s.  c  om*/
        startDateMinute = 0;
        endDateHour = 23;
        endDateMinute = 59;
        durationHour = 23;
        durationMinute = 59;
    }

    Date startDate = PortalUtil.getDate(startDateMonth, startDateDay, startDateYear, startDateHour,
            startDateMinute, TimeZoneUtil.getDefault(), null);
    Date endDate = PortalUtil.getDate(endDateMonth, endDateDay, endDateYear, endDateHour, endDateMinute,
            TimeZoneUtil.getDefault(), null);

    validate(titleMap, startDateMonth, startDateDay, startDateYear, endDateMonth, endDateDay, endDateYear,
            durationHour, durationMinute, allDay);

    CalendarEvent calendarEvent = calendarEventPersistence.findByPrimaryKey(calendarEventId);

    calendarEvent.setModifiedDate(serviceContext.getModifiedDate(null));
    calendarEvent.setTitleMap(titleMap);
    calendarEvent.setDescriptionMap(descriptionMap);
    calendarEvent.setLocation(location);
    calendarEvent.setStartDate(startDate);
    calendarEvent.setEndDate(endDate);
    calendarEvent.setDurationHour(durationHour);
    calendarEvent.setDurationMinute(durationMinute);
    calendarEvent.setAllDay(allDay);
    calendarEvent.setRecurrence(recurrence);
    calendarEvent.setType(type);
    calendarEvent.setRemindBy(remindBy);
    calendarEvent.setFirstReminder(firstReminder);
    calendarEvent.setSecondReminder(secondReminder);
    calendarEvent.setExpandoBridgeAttributes(serviceContext);

    calendarEventPersistence.update(calendarEvent, false);

    // Resources

    resourceLocalService.updateModelResources(calendarEvent, serviceContext);

    // Calendar bookings

    calendarBookingLocalService.updateCalendarBookings(calendarEventId, serviceContext);

    return calendarEvent;
}

From source file:com.liferay.calendar.util.CalendarBookingIterator.java

License:Open Source License

private TimeZone _getTimeZone(CalendarBooking calendarBooking) {
    try {/* w  w  w  .j  a  va2 s  .  c o m*/
        if (calendarBooking.isAllDay()) {
            return TimeZone.getTimeZone(StringPool.UTC);
        }

        return calendarBooking.getTimeZone();
    } catch (Exception e) {
        if (_log.isWarnEnabled()) {
            _log.warn(e, e);
        }
    }

    return TimeZoneUtil.getDefault();
}

From source file:com.liferay.calendar.util.test.CalendarUtilTest.java

License:Open Source License

@Test
public void testToCalendarBookingsJSONArray() throws Exception {
    CalendarBooking approved = CalendarBookingTestUtil.addPublishedCalendarBooking(_user);

    CalendarBooking sameUserDraft = CalendarBookingTestUtil.addDraftCalendarBooking(_user);

    User user2 = UserTestUtil.addUser();

    CalendarBooking anotherUserDraft = CalendarBookingTestUtil.addDraftCalendarBooking(user2);

    List<CalendarBooking> calendarBookings = getCalendarBookings(approved, sameUserDraft, anotherUserDraft);

    JSONArray jsonArray = CalendarUtil.toCalendarBookingsJSONArray(createThemeDisplay(), calendarBookings,
            TimeZoneUtil.getDefault());

    Assert.assertEquals(2, jsonArray.length());

    Set<Long> actualCalendarBookingIds = getCalendarBookingIds(jsonArray);

    Set<Long> excpectedCalendarBookingIds = getCalendarBookingIds(calendarBookings);

    excpectedCalendarBookingIds.remove(anotherUserDraft.getCalendarBookingId());

    Assert.assertEquals(excpectedCalendarBookingIds, actualCalendarBookingIds);
}

From source file:com.liferay.journal.search.test.JournalArticleIndexerSummaryTest.java

License:Open Source License

protected ThemeDisplay createThemeDisplay(HttpServletRequest httpServletRequest,
        HttpServletResponse httpServletResponse) throws Exception {

    ThemeDisplay themeDisplay = new ThemeDisplay();

    themeDisplay.setCompany(CompanyLocalServiceUtil.getCompany(_group.getCompanyId()));
    themeDisplay.setLayout(LayoutTestUtil.addLayout(_group));

    LayoutSet layoutSet = _group.getPublicLayoutSet();

    themeDisplay.setLayoutSet(layoutSet);

    Theme theme = ThemeLocalServiceUtil.getTheme(_group.getCompanyId(), layoutSet.getThemeId());

    themeDisplay.setLookAndFeel(theme, null);

    themeDisplay.setRealUser(_user);//from  w  ww.jav a2s.  c om
    themeDisplay.setRequest(httpServletRequest);
    themeDisplay.setResponse(httpServletResponse);
    themeDisplay.setTimeZone(TimeZoneUtil.getDefault());
    themeDisplay.setUser(_user);

    return themeDisplay;
}

From source file:com.liferay.portlet.amazonrankings.util.AmazonRankingsUtil.java

License:Open Source License

public static String getTimestamp() {
    DateFormat dateFormat = DateFormatFactoryUtil.getSimpleDateFormat(_TIMESTAMP);

    dateFormat.setTimeZone(TimeZoneUtil.getDefault());

    Calendar calendar = Calendar.getInstance();

    return dateFormat.format(calendar.getTime());
}

From source file:com.liferay.portlet.calendar.action.EditEventAction.java

License:Open Source License

protected void updateEvent(ActionRequest actionRequest) throws Exception {
    long eventId = ParamUtil.getLong(actionRequest, "eventId");

    String title = ParamUtil.getString(actionRequest, "title");
    String description = ParamUtil.getString(actionRequest, "description");
    String location = ParamUtil.getString(actionRequest, "location");

    int startDateMonth = ParamUtil.getInteger(actionRequest, "startDateMonth");
    int startDateDay = ParamUtil.getInteger(actionRequest, "startDateDay");
    int startDateYear = ParamUtil.getInteger(actionRequest, "startDateYear");
    int startDateHour = ParamUtil.getInteger(actionRequest, "startDateHour");
    int startDateMinute = ParamUtil.getInteger(actionRequest, "startDateMinute");
    int startDateAmPm = ParamUtil.getInteger(actionRequest, "startDateAmPm");

    if (startDateAmPm == Calendar.PM) {
        startDateHour += 12;/*from   w  w  w .  j  a v a 2  s. co m*/
    }

    int durationHour = ParamUtil.getInteger(actionRequest, "durationHour");
    int durationMinute = ParamUtil.getInteger(actionRequest, "durationMinute");
    boolean allDay = ParamUtil.getBoolean(actionRequest, "allDay");
    boolean timeZoneSensitive = ParamUtil.getBoolean(actionRequest, "timeZoneSensitive");
    String type = ParamUtil.getString(actionRequest, "type");

    int endDateMonth = ParamUtil.getInteger(actionRequest, "endDateMonth");
    int endDateDay = ParamUtil.getInteger(actionRequest, "endDateDay");
    int endDateYear = ParamUtil.getInteger(actionRequest, "endDateYear");

    boolean repeating = false;

    int recurrenceType = ParamUtil.getInteger(actionRequest, "recurrenceType");

    if (recurrenceType != Recurrence.NO_RECURRENCE) {
        repeating = true;
    }

    Locale locale = null;
    TimeZone timeZone = null;

    if (timeZoneSensitive) {
        User user = PortalUtil.getUser(actionRequest);

        locale = user.getLocale();
        timeZone = user.getTimeZone();
    } else {
        locale = LocaleUtil.getDefault();
        timeZone = TimeZoneUtil.getDefault();
    }

    Calendar startDate = CalendarFactoryUtil.getCalendar(timeZone, locale);

    startDate.set(Calendar.MONTH, startDateMonth);
    startDate.set(Calendar.DATE, startDateDay);
    startDate.set(Calendar.YEAR, startDateYear);
    startDate.set(Calendar.HOUR_OF_DAY, startDateHour);
    startDate.set(Calendar.MINUTE, startDateMinute);
    startDate.set(Calendar.SECOND, 0);
    startDate.set(Calendar.MILLISECOND, 0);

    if (allDay) {
        startDate.set(Calendar.HOUR_OF_DAY, 0);
        startDate.set(Calendar.MINUTE, 0);
        startDate.set(Calendar.SECOND, 0);
        startDate.set(Calendar.MILLISECOND, 0);

        durationHour = 24;
        durationMinute = 0;
    }

    TZSRecurrence recurrence = null;

    if (repeating) {
        Calendar recStartCal = null;

        if (timeZoneSensitive) {
            recStartCal = CalendarFactoryUtil.getCalendar(TimeZoneUtil.getTimeZone(StringPool.UTC));

            recStartCal.setTime(startDate.getTime());
        } else {
            recStartCal = (Calendar) startDate.clone();
        }

        recurrence = new TZSRecurrence(recStartCal, new Duration(1, 0, 0, 0), recurrenceType);

        recurrence.setTimeZone(timeZone);

        recurrence.setWeekStart(Calendar.SUNDAY);

        if (recurrenceType == Recurrence.DAILY) {
            int dailyType = ParamUtil.getInteger(actionRequest, "dailyType");

            if (dailyType == 0) {
                int dailyInterval = ParamUtil.getInteger(actionRequest, "dailyInterval", 1);

                recurrence.setInterval(dailyInterval);
            } else {
                DayAndPosition[] dayPos = { new DayAndPosition(Calendar.MONDAY, 0),
                        new DayAndPosition(Calendar.TUESDAY, 0), new DayAndPosition(Calendar.WEDNESDAY, 0),
                        new DayAndPosition(Calendar.THURSDAY, 0), new DayAndPosition(Calendar.FRIDAY, 0) };

                recurrence.setByDay(dayPos);
            }
        } else if (recurrenceType == Recurrence.WEEKLY) {
            int weeklyInterval = ParamUtil.getInteger(actionRequest, "weeklyInterval", 1);

            recurrence.setInterval(weeklyInterval);

            List<DayAndPosition> dayPos = new ArrayList<DayAndPosition>();

            addWeeklyDayPos(actionRequest, dayPos, Calendar.SUNDAY);
            addWeeklyDayPos(actionRequest, dayPos, Calendar.MONDAY);
            addWeeklyDayPos(actionRequest, dayPos, Calendar.TUESDAY);
            addWeeklyDayPos(actionRequest, dayPos, Calendar.WEDNESDAY);
            addWeeklyDayPos(actionRequest, dayPos, Calendar.THURSDAY);
            addWeeklyDayPos(actionRequest, dayPos, Calendar.FRIDAY);
            addWeeklyDayPos(actionRequest, dayPos, Calendar.SATURDAY);

            if (dayPos.size() == 0) {
                dayPos.add(new DayAndPosition(Calendar.MONDAY, 0));
            }

            recurrence.setByDay(dayPos.toArray(new DayAndPosition[0]));
        } else if (recurrenceType == Recurrence.MONTHLY) {
            int monthlyType = ParamUtil.getInteger(actionRequest, "monthlyType");

            if (monthlyType == 0) {
                int monthlyDay = ParamUtil.getInteger(actionRequest, "monthlyDay0");

                recurrence.setByMonthDay(new int[] { monthlyDay });

                int monthlyInterval = ParamUtil.getInteger(actionRequest, "monthlyInterval0", 1);

                recurrence.setInterval(monthlyInterval);
            } else {
                int monthlyPos = ParamUtil.getInteger(actionRequest, "monthlyPos");
                int monthlyDay = ParamUtil.getInteger(actionRequest, "monthlyDay1");

                DayAndPosition[] dayPos = { new DayAndPosition(monthlyDay, monthlyPos) };

                recurrence.setByDay(dayPos);

                int monthlyInterval = ParamUtil.getInteger(actionRequest, "monthlyInterval1", 1);

                recurrence.setInterval(monthlyInterval);
            }
        } else if (recurrenceType == Recurrence.YEARLY) {
            int yearlyType = ParamUtil.getInteger(actionRequest, "yearlyType");

            if (yearlyType == 0) {
                int yearlyMonth = ParamUtil.getInteger(actionRequest, "yearlyMonth0");
                int yearlyDay = ParamUtil.getInteger(actionRequest, "yearlyDay0");

                recurrence.setByMonth(new int[] { yearlyMonth });
                recurrence.setByMonthDay(new int[] { yearlyDay });

                int yearlyInterval = ParamUtil.getInteger(actionRequest, "yearlyInterval0", 1);

                recurrence.setInterval(yearlyInterval);
            } else {
                int yearlyPos = ParamUtil.getInteger(actionRequest, "yearlyPos");
                int yearlyDay = ParamUtil.getInteger(actionRequest, "yearlyDay1");
                int yearlyMonth = ParamUtil.getInteger(actionRequest, "yearlyMonth1");

                DayAndPosition[] dayPos = { new DayAndPosition(yearlyDay, yearlyPos) };

                recurrence.setByDay(dayPos);

                recurrence.setByMonth(new int[] { yearlyMonth });

                int yearlyInterval = ParamUtil.getInteger(actionRequest, "yearlyInterval1", 1);

                recurrence.setInterval(yearlyInterval);
            }
        }

        int endDateType = ParamUtil.getInteger(actionRequest, "endDateType");

        if (endDateType == 1) {
            int endDateOccurrence = ParamUtil.getInteger(actionRequest, "endDateOccurrence");

            recurrence.setOccurrence(endDateOccurrence);
        } else if (endDateType == 2) {
            Calendar endDate = CalendarFactoryUtil.getCalendar(timeZone);

            endDate.set(Calendar.MONTH, endDateMonth);
            endDate.set(Calendar.DATE, endDateDay);
            endDate.set(Calendar.YEAR, endDateYear);
            endDate.set(Calendar.HOUR_OF_DAY, startDateHour);
            endDate.set(Calendar.MINUTE, startDateMinute);
            endDate.set(Calendar.SECOND, 0);
            endDate.set(Calendar.MILLISECOND, 0);

            Calendar recEndCal = null;

            if (timeZoneSensitive) {
                recEndCal = CalendarFactoryUtil.getCalendar(TimeZoneUtil.getTimeZone(StringPool.UTC));

                recEndCal.setTime(endDate.getTime());
            } else {
                recEndCal = (Calendar) endDate.clone();
            }

            recurrence.setUntil(recEndCal);
        }
    }

    int remindBy = ParamUtil.getInteger(actionRequest, "remindBy");
    int firstReminder = ParamUtil.getInteger(actionRequest, "firstReminder");
    int secondReminder = ParamUtil.getInteger(actionRequest, "secondReminder");

    ServiceContext serviceContext = ServiceContextFactory.getInstance(CalEvent.class.getName(), actionRequest);

    if (eventId <= 0) {

        // Add event

        CalEvent event = CalEventServiceUtil.addEvent(title, description, location, startDateMonth,
                startDateDay, startDateYear, startDateHour, startDateMinute, endDateMonth, endDateDay,
                endDateYear, durationHour, durationMinute, allDay, timeZoneSensitive, type, repeating,
                recurrence, remindBy, firstReminder, secondReminder, serviceContext);

        AssetPublisherUtil.addAndStoreSelection(actionRequest, CalEvent.class.getName(), event.getEventId(),
                -1);
    } else {

        // Update event

        CalEventServiceUtil.updateEvent(eventId, title, description, location, startDateMonth, startDateDay,
                startDateYear, startDateHour, startDateMinute, endDateMonth, endDateDay, endDateYear,
                durationHour, durationMinute, allDay, timeZoneSensitive, type, repeating, recurrence, remindBy,
                firstReminder, secondReminder, serviceContext);
    }
}

From source file:com.liferay.portlet.calendar.service.impl.CalEventLocalServiceImpl.java

License:Open Source License

public CalEvent addEvent(long userId, String title, String description, String location, int startDateMonth,
        int startDateDay, int startDateYear, int startDateHour, int startDateMinute, int endDateMonth,
        int endDateDay, int endDateYear, int durationHour, int durationMinute, boolean allDay,
        boolean timeZoneSensitive, String type, boolean repeating, TZSRecurrence recurrence, int remindBy,
        int firstReminder, int secondReminder, ServiceContext serviceContext)
        throws PortalException, SystemException {

    // Event/*from w  w  w .  j  ava  2  s . co  m*/

    User user = userPersistence.findByPrimaryKey(userId);
    long groupId = serviceContext.getScopeGroupId();
    Date now = new Date();

    Locale locale = null;
    TimeZone timeZone = null;

    if (timeZoneSensitive) {
        locale = user.getLocale();
        timeZone = user.getTimeZone();
    } else {
        locale = LocaleUtil.getDefault();
        timeZone = TimeZoneUtil.getDefault();
    }

    Calendar startDate = CalendarFactoryUtil.getCalendar(timeZone, locale);

    startDate.set(Calendar.MONTH, startDateMonth);
    startDate.set(Calendar.DATE, startDateDay);
    startDate.set(Calendar.YEAR, startDateYear);
    startDate.set(Calendar.HOUR_OF_DAY, startDateHour);
    startDate.set(Calendar.MINUTE, startDateMinute);
    startDate.set(Calendar.SECOND, 0);
    startDate.set(Calendar.MILLISECOND, 0);

    Calendar endDate = CalendarFactoryUtil.getCalendar(timeZone, locale);

    endDate.set(Calendar.MONTH, endDateMonth);
    endDate.set(Calendar.DATE, endDateDay);
    endDate.set(Calendar.YEAR, endDateYear);
    endDate.set(Calendar.HOUR_OF_DAY, 23);
    endDate.set(Calendar.MINUTE, 59);
    endDate.set(Calendar.SECOND, 59);
    endDate.set(Calendar.MILLISECOND, 990);

    if (allDay) {
        startDate.set(Calendar.HOUR_OF_DAY, 0);
        startDate.set(Calendar.MINUTE, 0);

        durationHour = 24;
        durationMinute = 0;
    }

    validate(title, startDateMonth, startDateDay, startDateYear, endDateMonth, endDateDay, endDateYear,
            durationHour, durationMinute, allDay, repeating, recurrence);

    long eventId = counterLocalService.increment();

    CalEvent event = calEventPersistence.create(eventId);

    event.setUuid(serviceContext.getUuid());
    event.setGroupId(groupId);
    event.setCompanyId(user.getCompanyId());
    event.setUserId(user.getUserId());
    event.setUserName(user.getFullName());
    event.setCreateDate(serviceContext.getCreateDate(now));
    event.setModifiedDate(serviceContext.getModifiedDate(now));
    event.setTitle(title);
    event.setDescription(description);
    event.setLocation(location);
    event.setStartDate(startDate.getTime());
    event.setEndDate(endDate.getTime());
    event.setDurationHour(durationHour);
    event.setDurationMinute(durationMinute);
    event.setAllDay(allDay);
    event.setTimeZoneSensitive(timeZoneSensitive);
    event.setType(type);
    event.setRepeating(repeating);
    event.setRecurrenceObj(recurrence);
    event.setRemindBy(remindBy);
    event.setFirstReminder(firstReminder);
    event.setSecondReminder(secondReminder);
    event.setExpandoBridgeAttributes(serviceContext);

    calEventPersistence.update(event, false);

    // Resources

    if (serviceContext.isAddGroupPermissions() || serviceContext.isAddGuestPermissions()) {

        addEventResources(event, serviceContext.isAddGroupPermissions(),
                serviceContext.isAddGuestPermissions());
    } else {
        addEventResources(event, serviceContext.getGroupPermissions(), serviceContext.getGuestPermissions());
    }

    // Asset

    updateAsset(userId, event, serviceContext.getAssetCategoryIds(), serviceContext.getAssetTagNames(),
            serviceContext.getAssetLinkEntryIds());

    // Social

    socialActivityLocalService.addActivity(userId, groupId, CalEvent.class.getName(), eventId,
            CalendarActivityKeys.ADD_EVENT, StringPool.BLANK, 0);

    // Indexer

    Indexer indexer = IndexerRegistryUtil.getIndexer(CalEvent.class);

    indexer.reindex(event);

    // Pool

    CalEventLocalUtil.clearEventsPool(event.getGroupId());

    return event;
}