private static void deleteDash(Holder holder, MobileStateHolder state, int dashId) {
User user = state.user;
int index = user.profile.getDashIndexOrThrow(dashId);
log.debug("Deleting dashboard {}.", dashId);
DashBoard dash = user.profile.dashBoards[index];
user.addEnergy(dash.energySum());
holder.timerWorker.deleteTimers(state.userKey, dash);
holder.tokenManager.deleteDash(dash);
holder.sessionDao.closeHardwareChannelByDashId(state.userKey, dashId);
holder.reportScheduler.cancelStoredFuture(user, dashId);
holder.blockingIOProcessor.executeHistory(() -> {
for (Device device : dash.devices) {
try {
holder.reportingDiskDao.delete(state.user, dashId, device.id);
} catch (Exception e) {
log.warn("Error removing device data. Reason : {}.", e.getMessage());
}
}
});
user.profile.dashBoards = ArrayUtil.remove(user.profile.dashBoards, index, DashBoard.class);
}