public IList InteraccionPQ2(object cabecera, object juegos, PedidosSorteos queJuego) { try { Error err = new Error(); IList objs = new List<object>(); Errorof erNroOf = opOff.GetNro(DateTime.Now, ref TransacManager.ProtoConfig.nroOff); if (erNroOf.Error != 0) { err.CodError = (uint)erNroOf.Error; err.Descripcion = erNroOf.Mensaje; objs.Add(err); return objs; } LogBMTP.LogMessage("Transacción "+queJuego.ToString(), lvlLogTransaccion, TimeStampLog); if (queJuego == PedidosSorteos.QUINIELA) { if (cabecera != null) { TransacQuinielaH tqh = (TransacQuinielaH)cabecera; tqh.NroSecuencia = (uint)TransacManager.ProtoConfig.nroOff.numeroOff; Enviar(ConstructorMenEnv.crearP_QM(tqh, (TransacQuinielaB)juegos), EnumPaquete.DATOS, TR.ordenMsgNackE); } else throw new ArgumentException("El pedido de sorteo no es válido.", "Cabecera nula."); } TR.ordenMsgNackE++; bytes = new byte[ProtocoloConfig.TamBuffer]; do { objs = Recibir(bytes, 2, 0, "Q2"); //atrapa errores de recepción if (objs.Count > 1 && !(objs[0] is string)) { byte[] ACK = { }; Enviar(ACK, EnumPaquete.ACK, TR.ordenAckE); } else { break; } } while (!TransacManager.ProtoConfig.NACK_ENV.Equals(NackEnv.SINERROR)); if (objs == null || objs.Count == 0) { throw new Exception("Lista de objetos(objs) regreso vacía de Recibir()"); } else if (objs[0] is string) { opOff.BajaNro(); objs[0] = MensajeNack(objs[0]); } else if(objs[0] is Error) { Error er = (Error)objs[0]; if (er.CodError != 0) opOff.BajaNro(); else { if (objs[1] != null && objs[1] is TransacQuinielaH) ((TransacQuinielaH)objs[1]).NroSecuencia = (uint)TransacManager.ProtoConfig.nroOff.numeroOff; else if (objs[1] != null && objs[1] is TransacPoceado) ((TransacPoceado)objs[1]).NroSecuencia = (uint)TransacManager.ProtoConfig.nroOff.numeroOff; } } return objs; } catch (Exception ex) { opOff.BajaNro(); Error errEx = EmpalmeErrorExcepcion(ex, ErrComunicacion.APUESTAex, "Ha ocurrido un problema durante la descarga de apuestas."); return new List<object> { errEx }; } }
public IList InteraccionPQ1(PedidosSorteos sort, UInt32 terminal, EnumEstadoParametrosOff estadoParametrosOff, string path = @"C:\BetmakerTP\Off") { try { LogBMTP.LogMessage("Pedido de sorteo: " + sort + " Terminal: " + terminal, lvlLogTransaccion, TimeStampLog); Enviar(ConstructorMenEnv.crearP_PedidoSorteo((byte)sort, terminal), EnumPaquete.DATOS, TR.ordenMsgNackE); TR.ordenMsgNackE++; Errorof errOf = new Errorof(); IList objs = new List<object>(); bytes = new byte[ProtocoloConfig.TamBuffer]; do { LogBMTP.LogMessage("Parametros " + sort, lvlLogTransaccion, TimeStampLog); objs = Recibir(bytes, (ushort)EnumPaquete.DATOS, 0, "Q1"); //atrapa errores de recepción if (objs.Count > 1 && !(objs[0] is string)) { byte[] ACK = { }; Enviar(ACK, EnumPaquete.ACK, TR.ordenAckE); } else { break; } } while (!TransacManager.ProtoConfig.NACK_ENV.Equals(NackEnv.SINERROR)); if (objs == null || objs.Count == 0) { throw new Exception("Lista de objetos(objs) regreso vacía de Recibir()"); } else if (objs[0] is string) { Error err = MensajeNack(objs[0]); objs[0] = err; } return objs; } catch (Exception ex) { Error errEx = EmpalmeErrorExcepcion(ex, ErrComunicacion.PEDIDO_SORTEOex, "Ha ocurrido un problema durante la descarga de parametros."); return new List<object> { errEx }; } }