@Override
public Pair<List<? extends UsageVO>, Integer> doInTransaction(final TransactionStatus status) {
Pair<List<UsageVO>, Integer> usageRecords = new Pair<List<UsageVO>, Integer>(new ArrayList<UsageVO>(), 0);
Filter usageFilter = new Filter(UsageVO.class, "startDate", true, 0L, Long.MAX_VALUE);
QueryBuilder<UsageVO> qb = QueryBuilder.create(UsageVO.class);
if (accountId != -1) {
qb.and(qb.entity().getAccountId(), SearchCriteria.Op.EQ, accountId);
}
if (domainId != -1) {
qb.and(qb.entity().getDomainId(), SearchCriteria.Op.EQ, domainId);
}
qb.and(qb.entity().getQuotaCalculated(), SearchCriteria.Op.NEQ, 1);
qb.and(qb.entity().getRawUsage(), SearchCriteria.Op.GT, 0);
if (s_logger.isDebugEnabled()) {
s_logger.debug("Getting usage records" + usageFilter.getOrderBy());
}
usageRecords = searchAndCountAllRecords(qb.create(), usageFilter);
return new Pair<List<? extends UsageVO>, Integer>(usageRecords.first(), usageRecords.second());
}
});