private static void unlockContent(User user, int reward) { user.addEnergy(reward); log.info("Unlocking content for {}. Reward {}.", user.email, reward); }
/** * Removes all widgets with tabId greater than lastTabIndex */ static Widget[] deleteTabs(TimerWorker timerWorker, User user, UserKey userKey, int dashId, long deviceTilesId, long templateId, Widget[] widgets, int lastTabIndex) { ArrayList<Widget> zeroTabWidgets = new ArrayList<>(); int removedWidgetPrice = 0; for (Widget widgetToDelete : widgets) { if (widgetToDelete.tabId > lastTabIndex) { removedWidgetPrice += widgetToDelete.getPrice(); if (widgetToDelete instanceof Timer) { timerWorker.delete(userKey, (Timer) widgetToDelete, dashId, deviceTilesId, templateId); } else if (widgetToDelete instanceof Eventor) { timerWorker.delete(userKey, (Eventor) widgetToDelete, dashId); } } else { zeroTabWidgets.add(widgetToDelete); } } user.addEnergy(removedWidgetPrice); return zeroTabWidgets.toArray(new Widget[0]); }
public void messageReceived(ChannelHandlerContext ctx, MobileStateHolder state, StringMessage message) { var splitBody = split2(message.body); var user = state.user; var energyAmountToAdd = Integer.parseInt(splitBody[0]); ResponseMessage response; if (splitBody.length == 2 && isValidTransactionId(splitBody[1])) { double price = calcPrice(energyAmountToAdd); insertPurchase(user.email, energyAmountToAdd, price, splitBody[1]); user.addEnergy(energyAmountToAdd); response = ok(message.id); } else { if (!wasErrorPrinted) { log.warn("Purchase {} with invalid transaction id '{}'. {} ({}).", splitBody[0], splitBody[1], user.email, state.version); wasErrorPrinted = true; } response = notAllowed(message.id); } ctx.writeAndFlush(response, ctx.voidPromise()); }
public static void messageReceived(ChannelHandlerContext ctx, MobileStateHolder state, StringMessage message) { String[] split = split3(message.body); if (split.length < 2) { throw new IllegalCommandException("Wrong income message format."); } int dashId = Integer.parseInt(split[0]); long widgetId = Long.parseLong(split[1]); long tileId = Long.parseLong(split[2]); User user = state.user; DashBoard dash = user.profile.getDashByIdOrThrow(dashId); Widget widget = dash.getWidgetByIdOrThrow(widgetId); if (!(widget instanceof DeviceTiles)) { throw new IllegalCommandException("Income widget id is not DeviceTiles."); } DeviceTiles deviceTiles = (DeviceTiles) widget; int existingTileIndex = deviceTiles.getTileTemplateIndexByIdOrThrow(tileId); log.debug("Deleting tile template dashId : {}, widgetId : {}, tileId : {}.", dash, widgetId, tileId); TileTemplate tileTemplate = deviceTiles.templates[existingTileIndex]; user.addEnergy(tileTemplate.getPrice()); deviceTiles.templates = ArrayUtil.remove(deviceTiles.templates, existingTileIndex, TileTemplate.class); deviceTiles.deleteDeviceTilesByTemplateId(tileId); user.profile.cleanPinStorageForTileTemplate(dash, tileTemplate, true); dash.updatedAt = System.currentTimeMillis(); ctx.writeAndFlush(ok(message.id), ctx.voidPromise()); }
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); }
user.addEnergy(Report.getPrice()); reportingWidget.reports = ArrayUtil.remove(reportingWidget.reports, existingReportIndex, Report.class); dash.updatedAt = System.currentTimeMillis();
user.addEnergy(widgetToDelete.getPrice()); TimerWorker timerWorker = holder.timerWorker; if (deviceTilesId != -1) {