/// <summary> /// Metodo para procesar pago con PinPad Móvil /// </summary> /// <param name="request">Movimiento tarjeta de regalo</param> /// <returns>Respuesta de la operación</returns> public ResponseBussiness <OperationResponse> ProcesarPagoPinPadMovil(ProcesarMovimientoPagoPinPadMovilRequest request) { return(tryCatch.SafeExecutor(() => { using (TransactionScope scope = new TransactionScope()) { // Se procesan las promociones por venta foreach (var item in request.DescuentosPromocionalesPorVentaAplicados.DescuentoPromocionesAplicados) { OperationResponse response = new OperationResponse(); response = repository.PersistirPromocionesVenta(request.FolioOperacionAsociada, token.CodeStore, token.CodeBox, item.ImporteDescuento , item.CodigoPromocionAplicado, item.DescripcionCodigoPromocionAplicado, item.PorcentajeDescuento, item.CodigoRazonDescuento, item.FormaPagoCodigoPromocionAplicado); } // Se procesan las promociones por línea de venta foreach (var item in request.DescuentosPromocionalesPorLineaAplicados.DescuentoPromocionesAplicados) { OperationResponse response = new OperationResponse(); response = repository.PersistirPromocionesLineaVenta(request.FolioOperacionAsociada, token.CodeStore, token.CodeBox, item.Secuencia, item.ImporteDescuento , item.CodigoPromocionAplicado, item.DescripcionCodigoPromocionAplicado, item.PorcentajeDescuento, item.CodigoRazonDescuento, item.FormaPagoCodigoPromocionAplicado); } // Se procesa el pago en base de datos localmente OperationResponse respuestaLocal = repository.ProcesarPagoPinPadMovil(token.CodeStore, token.CodeBox, token.CodeEmployee, request); scope.Complete(); return respuestaLocal; } })); }
public ResponseBussiness <OperationResponse> RealizarPagoPinPadMovil(ProcesarMovimientoPagoPinPadMovilRequest procesarMovimientoPagoPinPadMovilRequest) { TokenDto token = new TokenService().Get(); ResponseBussiness <OperationResponse> response = new PaymentProcessingBusiness(token).ProcesarPagoPinPadMovil(procesarMovimientoPagoPinPadMovilRequest); return(response); }