public bool syncDraw_ServerToLocal() { bool successProcess = true; long posId = ParameterService.getSalePointId(); // Realizar sincronización solamente si la sucursal está asignada if (posId != 0) { // Realizar la petición http ServerConnectionService connection = new ServerConnectionService(); ServiceResponseResult responseResult = connection.getReopenDrawList(posId); successProcess = this.isValidResponse(responseResult); if (successProcess) { string jsonStringResult = responseResult.result.ToString(); // Obtener array de los id de sorteos reabiertos para la sucursal JArray jsonArray = JArray.Parse(jsonStringResult); // Realizar la persistencia de los sorteos reabiertos LotteryDrawRepository drawRepo = new LotteryDrawRepository(); foreach (var drawId in jsonArray) { LTD_LotteryDraw draw = drawRepo.getById((long)drawId); if (draw != null) { draw.LDS_LotteryDrawStatus = SystemConstants.DRAW_STATUS_REOPENED; drawRepo.save(ref draw); // Cambiar todos los registros de QR a pendiente ListService listService = new ListService(); listService.changeListStatusFromQRUpdated(draw, SystemConstants.SYNC_STATUS_PENDING_TO_SERVER); } } } } return(successProcess); }
//----------------- Servicios Asíncronos de Pendientes de Pago y Reversión -----------------// #region Servicios Asíncronos de Pendientes de Pago y Reversión public async Task <bool> syncPendingListNumberToServerAsync(DateTime?pDrawDate = null, long pDrawType = 0) { bool successProcess = true; LotteryListRepository listRepo = new LotteryListRepository(); List <LTL_LotteryList> pendingTransactions = new List <LTL_LotteryList>(); if (pDrawDate == null && pDrawType == 0) { pendingTransactions = listRepo.getPosPendingTransactions(); } else { ListService listService = new ListService(); if (pDrawType == 0) { pendingTransactions = listService.getPosPendingTransactionsByDate(pDrawDate); } else { pendingTransactions = listService.getPosPendingTransactionsByDateAndType(pDrawDate, pDrawType); } Console.WriteLine("Fecha: " + pDrawDate); } Console.WriteLine("Transacciones a Sincronizar: " + pendingTransactions.Count); foreach (LTL_LotteryList item in pendingTransactions) { Console.Write(item.LTL_Id); switch (item.LLS_LotteryListStatus) { case SystemConstants.LIST_STATUS_CREATED: // Procesar creación de la lista en el servidor List <LND_ListNumberDetail> listNumber = listRepo.getListDetail(item.LTL_Id); bool successSale = await this.processListToServerAsync(item, listNumber); // Si hay fallos en el registro de la venta, reportar sincronización como fallida if (!successSale) { successProcess = false; } break; case SystemConstants.LIST_STATUS_CANCELED: // Procesar reversión de la lista en el servidor bool successReversion = await this.processReverseToServerAsync(item); // Si hay fallos en la reversión, reportar sincronización como fallida if (!successReversion) { // TODO: Es necesario validar reversiones fallidas //successProcess = false; } break; default: break; } } return(successProcess); }
public void saveDrawSaleImport(long pDrawType, DateTime pDrawDate) { // Obtener total de venta del sorteo ListService listService = new ListService(); long saleImport = listService.getDrawSaleImport(ParameterService.getSalePointId(), pDrawDate, pDrawType); // Almacenar importe de premio para el sorteo DrawBalanceService drawBalanceService = new DrawBalanceService(); drawBalanceService.saveBalance(pDrawType, pDrawDate, saleImport); }