private List<BlockingState> addBlockingStatesNotOnDisk(final List<BlockingState> blockingStatesOnDisk, final InternalTenantContext context) { final Collection<BlockingState> blockingStatesOnDiskCopy = new LinkedList<BlockingState>(blockingStatesOnDisk); // Find all base entitlements that we care about (for which we want to find future cancelled add-ons) final Iterable<SubscriptionBase> baseSubscriptionsToConsider; final Iterable<EventsStream> eventsStreams; try { final Map<UUID, List<SubscriptionBase>> subscriptions = subscriptionInternalApi.getSubscriptionsForAccount(context); baseSubscriptionsToConsider = Iterables.<SubscriptionBase>filter(Iterables.<SubscriptionBase>concat(subscriptions.values()), new Predicate<SubscriptionBase>() { @Override public boolean apply(final SubscriptionBase input) { return ProductCategory.BASE.equals(input.getCategory()); } }); eventsStreams = Iterables.<EventsStream>concat(eventsStreamBuilder.buildForAccount(subscriptions, context).getEventsStreams().values()); } catch (EntitlementApiException e) { log.error("Error computing blocking states for addons for account record id " + context.getAccountRecordId(), e); throw new RuntimeException(e); } return addBlockingStatesNotOnDisk(null, null, blockingStatesOnDiskCopy, baseSubscriptionsToConsider, eventsStreams); }
public void exportDataForAccount(final DatabaseExportOutputStream out, final InternalTenantContext context) { if (context.getAccountRecordId() == null || context.getTenantRecordId() == null) { return; } final List<DefaultColumnInfo> columns = databaseSchemaDao.getColumnInfoList(); if (columns.size() == 0) { return; } final List<ColumnInfo> columnsForTable = new ArrayList<ColumnInfo>(); // The list of columns is ordered by table name first String lastSeenTableName = columns.get(0).getTableName(); for (final ColumnInfo column : columns) { if (!column.getTableName().equals(lastSeenTableName)) { exportDataForAccountAndTable(out, columnsForTable, context); lastSeenTableName = column.getTableName(); columnsForTable.clear(); } columnsForTable.add(column); } exportDataForAccountAndTable(out, columnsForTable, context); }
@Override public List<InvoiceModelDao> getAllInvoicesByAccount(final InternalTenantContext context) { final List<InvoiceModelDao> result = new ArrayList<InvoiceModelDao>(); synchronized (monitor) { final UUID accountId = accountRecordIds.inverse().get(context.getAccountRecordId()); for (final InvoiceModelDao invoice : invoices.values()) { if (accountId.equals(invoice.getAccountId())) { result.add(invoice); } } } return result; }
@Override public List<InvoiceModelDao> getInvoicesByAccount(final InternalTenantContext context) { final List<InvoiceModelDao> result = new ArrayList<InvoiceModelDao>(); synchronized (monitor) { final UUID accountId = accountRecordIds.inverse().get(context.getAccountRecordId()); for (final InvoiceModelDao invoice : invoices.values()) { if (accountId.equals(invoice.getAccountId()) && !invoice.isMigrated()) { result.add(invoice); } } } return result; }
public DateTime fromNowAndReferenceTime(final DateTime referenceDateTime, final InternalTenantContext callContext) throws EntitlementApiException { try { final Account account = accountApi.getAccountByRecordId(callContext.getAccountRecordId(), callContext); return fromNowAndReferenceTime(referenceDateTime, account.getTimeZone()); } catch (AccountApiException e) { throw new EntitlementApiException(e); } }
public DateTime fromLocalDateAndReferenceTime(final LocalDate requestedDate, final DateTime referenceDateTime, final InternalTenantContext callContext) throws EntitlementApiException { try { final Account account = accountApi.getAccountByRecordId(callContext.getAccountRecordId(), callContext); return fromLocalDateAndReferenceTime(requestedDate, referenceDateTime, account.getTimeZone()); } catch (AccountApiException e) { throw new EntitlementApiException(e); } }
account = accountInternalApi.getAccountByRecordId(internalTenantContext.getAccountRecordId(), internalTenantContext); } catch (AccountApiException e) { throw new EntitlementApiException(e);
@Override public List<InvoiceModelDao> getInvoicesByAccount(final LocalDate fromDate, final InternalTenantContext context) { final List<InvoiceModelDao> invoicesForAccount = new ArrayList<InvoiceModelDao>(); synchronized (monitor) { final UUID accountId = accountRecordIds.inverse().get(context.getAccountRecordId()); for (final InvoiceModelDao invoice : getAll(context)) { if (accountId.equals(invoice.getAccountId()) && !invoice.getTargetDate().isBefore(fromDate) && !invoice.isMigrated()) { invoicesForAccount.add(invoice); } } } return invoicesForAccount; }
@Override public DefaultAccountAuditLogs getAuditLogsForAccountRecordId(final AuditLevel auditLevel, final InternalTenantContext context) { final UUID accountId = nonEntitySqlDao.getIdFromObject(context.getAccountRecordId(), TableName.ACCOUNT.getTableName()); // Lazy evaluate records to minimize the memory footprint (these can yield a lot of results) // We usually always want to wrap our queries in an EntitySqlDaoTransactionWrapper... except here. // Since we want to stream the results out, we don't want to auto-commit when this method returns. final EntitySqlDao auditSqlDao = transactionalSqlDao.onDemand(EntitySqlDao.class); final Iterator<AuditLogModelDao> auditLogsForAccountRecordId = auditSqlDao.getAuditLogsForAccountRecordId(context); final Iterator<AuditLog> allAuditLogs = buildAuditLogsFromModelDao(auditLogsForAccountRecordId, context); return new DefaultAccountAuditLogs(accountId, auditLevel, allAuditLogs); }
@Override public Void withHandle(final Handle handle) throws Exception { final ResultIterator<Map<String, Object>> iterator = handle.createQuery(queryBuilder.toString()) .bind("accountRecordId", context.getAccountRecordId()) .bind("tenantRecordId", context.getTenantRecordId()) .iterator(); try { while (iterator.hasNext()) { final Map<String, Object> row = iterator.next(); out.write(row); } } finally { iterator.close(); } return null; } });
if (context.getAccountRecordId() == null) { q.bindNull("accountRecordId", Types.INTEGER); } else { q.bind("accountRecordId", context.getAccountRecordId());