private void validateIntervalDuration(ConferenceInterval interval) { LocalDateTime startDateTime = interval.getStartDateTime(); LocalDateTime endDateTime = interval.getEndDateTime(); long hours = startDateTime.until(endDateTime, ChronoUnit.HOURS); if (hours < MIN_CONFERENCE_DURATION_IN_HOURS) { throw new ValidationException( String.format( "Conference duration is %s hours, less than min of %s hour(s)", hours, MIN_CONFERENCE_DURATION_IN_HOURS)); } long days = startDateTime.until(endDateTime, ChronoUnit.DAYS); if (days > MAX_CONFERENCE_DURATION_IN_DAYS) { throw new ValidationException( String.format( "Conference duration is %s days, more than max of %s day(s)", days, MAX_CONFERENCE_DURATION_IN_DAYS)); } }
private void validateIntervalPosition(ConferenceInterval interval) { LocalDateTime startDateTime = interval.getStartDateTime(); LocalDateTime endDateTime = interval.getEndDateTime(); LocalDateTime now = LocalDateTime.now(); LocalDateTime minStartDateTime = now.plusDays(MIN_TIME_BEFORE_CONFERENCE_START_IN_DAYS); if (startDateTime.isBefore(minStartDateTime)) { throw new ValidationException( String.format( "Conference must start after %s", minStartDateTime.format(CONFERENCE_DATE_TIME_FORMATTER))); } if (endDateTime.isBefore(startDateTime)) { throw new ValidationException( String.format( "Conference end dateTime %s is before start dateTime %s", endDateTime.format(CONFERENCE_DATE_TIME_FORMATTER), startDateTime.format(CONFERENCE_DATE_TIME_FORMATTER))); } }