public void syncPendingListNumberToServer() { LotteryListRepository listRepo = new LotteryListRepository(); List <LTL_LotteryList> pendingTransactions = listRepo.getPosPendingTransactions(); 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 Console.WriteLine(" - Creada "); List <LND_ListNumberDetail> listNumber = listRepo.getListDetail(item.LTL_Id); this.sendListNumberToServer(item, listNumber); break; case SystemConstants.LIST_STATUS_CANCELED: // Procesar reversión de la lista en el servidor Console.WriteLine(" - Anulada "); this.reverseListNumberFromServer(item); break; default: break; } } }
//----------------- 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); }