コード例 #1
0
        private int ObtenerIdTransaccion(string[] campos)
        {
            var idTransaccion = Convert.ToInt32(campos[1]);

            if (idTransaccion == 0)
            {
                var mensaje = "El id transaccion no puede ser 0";
                _interfacePresenter.MostrarMensaje(mensaje);

                throw new ArgumentException(mensaje);
            }

            return(idTransaccion);
        }
コード例 #2
0
        public IList <string> GetMessages()
        {
            string prefijoMensaje = "test";

            var messages = new List <string>();

            _interfacePresenter.MostrarMensaje("Empezando a leer redis");
            try
            {
                bool tieneDatos = false;
                while (true)
                {
                    var result = _redisQueue.Pop(_redisQueueName);
                    if (string.IsNullOrEmpty(result))
                    {
                        break;
                    }

                    messages.Add(result);
                    tieneDatos = true;

                    if (messages.Count >= 100)
                    {
                        break;
                    }
                }
                ;

                if (!tieneDatos)
                {
                    _interfacePresenter.MostrarMensaje("Cola Vacia");

                    return(null);
                }

                return(messages);
            }
            catch (Exception ex)
            {
                return(messages.Any() ? messages : null);
            }
        }
        public void PedidoLectorQueueRedis(object source, ElapsedEventArgs e)
        {
            lock (_pedidoLectorQueueRedisLock)
            {
                try
                {
                    timerLectorQueueRedis.Enabled = false;
                    _interfacePresenter.MostrarMensaje("Leyendo cola de concertación");

                    var messages = _redisQueueConsumer.GetMessages();

                    if (messages == null)
                    {
                        timerLectorQueueRedis.Enabled = true;

                        return;
                    }

                    var redisMessagesToProcess = messages.ToArray();

                    _interfacePresenter.MostrarMensaje("Fin de lectura de cola de concertación");
                    _interfacePresenter.MostrarMensaje("Iniciando la decodificación de los mensajes...");

                    var msjsDecoded = new NovedadFIXDTO[redisMessagesToProcess.Length];

                    for (int i = 0; i < redisMessagesToProcess.Length; i++)
                    {
                        if (redisMessagesToProcess[i] == null)
                        {
                            continue;
                        }

                        msjsDecoded[i] = _messageDecoder.DecodificarMensaje(redisMessagesToProcess[i]);
                    }

                    _interfacePresenter.MostrarMensaje("Fin de la decodificación de los mensajes.");
                    _interfacePresenter.MostrarMensaje("Empezando a tomar acciones en base al tipo de ordenes recibidas...");

                    for (int i = 0; i < msjsDecoded.Length; i++)
                    {
                        if (msjsDecoded[i] == null)
                        {
                            continue;
                        }

                        _transaccionWrapperCRUDManager.RealizarAccionDeOrden(msjsDecoded[i]);
                    }

                    _interfacePresenter.MostrarMensaje("Acciones terminadas.");

                    timerLectorQueueRedis.Enabled = true;
                }
                catch (Exception ex)
                {
                }
            }
        }
コード例 #4
0
 public void FromApp(Message msg, SessionID sessionID)
 {
     try
     {
         Crack(msg, sessionID);
     }
     catch (Exception ex)
     {
         if (!(ex is UnsupportedMessageType))
         {
             _logger.LogMensaje(TipoLog.Fatal, ex, "Error al parsear un mensaje");
             _interfacePresenter.MostrarMensaje($"ERROR: {ex.Message}");
         }
     }
 }