コード例 #1
0
ファイル: SynchronizeService.cs プロジェクト: melfallas/SILO
        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);
        }
コード例 #2
0
ファイル: SynchronizeService.cs プロジェクト: melfallas/SILO
        //----------------- 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);
        }
コード例 #3
0
        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);
        }