@Transactional
  public void deleteRepeatSetup(RepeatSetup repeatSetup, String email) {
    RepeatSetup repeatSetupFromDB = repeatSetupDao.getRepeatSetupByID(repeatSetup.getId());
    if (repeatSetupFromDB == null || !repeatSetupFromDB.getMember().getEmail().equals(email))
      return;

    repeatSetupFromDB.setRepeatSetupStatusOrdinal(RepeatSetupStatus.DELETE.ordinal());

    repeatSetupDao.updateRepeatSetup(repeatSetupFromDB);
  }
  @Transactional
  public RepeatSetup updateRepeatSetup(RepeatSetup repeatSetup, String profileId)
      throws ValidationException {
    // check to make sure required fields are set
    validator.validateRepeatSetup(repeatSetup);

    RepeatSetup repeatSetupFromDB = repeatSetupDao.getRepeatSetupByID(repeatSetup.getId());
    if (repeatSetupFromDB == null) return createRepeatSetup(repeatSetupFromDB);

    if (profileId == null || !repeatSetupFromDB.getMember().getEmail().equalsIgnoreCase(profileId))
      return repeatSetup;

    validator.validateSynchronizationUpdate(repeatSetup, repeatSetupFromDB);
    repeatSetup.setModifiedDateZone(new DateTime());

    repeatSetupDao.updateRepeatSetup(repeatSetupFromDB);

    return repeatSetup;
  }