/** {@inheritDoc} */
  @Override
  public void updateJobCountPerDays(final Calendar asOfDay) {

    final Calendar today = CalendarUtils.getCalendarWithoutTime();
    today.setTime(asOfDay.getTime());
    final Calendar yesterday = CalendarUtils.getCalendarWithoutTime();
    yesterday.add(Calendar.DAY_OF_YEAR, -1);

    final List<JobCountPerDay> latestTwoJobCountPerDays = jobCountPerDayDao.getLatestTwoJobCounts();

    // If nothing exists yet, create an entry with zero jobs.
    if (latestTwoJobCountPerDays.isEmpty()) {
      jobCountPerDayDao.save(new JobCountPerDay(yesterday.getTime(), 0L, 0L, 0L));
    }

    boolean containsToday = false;

    // Let's make sure we have a value for today
    for (JobCountPerDay jobCountPerDay : latestTwoJobCountPerDays) {
      if (today.getTime().equals(jobCountPerDay.getJobDate())) {
        containsToday = true;
        break;
      }
    }

    if (!containsToday) {
      // We need to create a value for today
      final Long totalNumberOfJobs = this.getJobsCount();
      jobCountPerDayDao.save(new JobCountPerDay(today.getTime(), 0L, 0L, totalNumberOfJobs));
    }
  }