예제 #1
0
        public Paso ObtenerPaso(DinamicaDeMensaje dinamicaMensaje, PASO_DINAMICA pasoDinamica)
        {
            EnumTipoFuncionalidad tipoMensaje = (EnumTipoFuncionalidad)
                Enum.ToObject(typeof(EnumTipoFuncionalidad), pasoDinamica.PDT_FUNCIONALIDAD);

            Componente componente;
            switch (tipoMensaje)
            {
                case EnumTipoFuncionalidad.Validacion:
                    componente = this.validacion;
                    break;
                case EnumTipoFuncionalidad.Transformacion:
                    componente = this.transformacion;
                    break;
                case EnumTipoFuncionalidad.Criptografia:
                    componente = this.criptografia;
                    break;
                case EnumTipoFuncionalidad.Enviar:
                case EnumTipoFuncionalidad.Recibir:
                    componente = this.comunicacion;
                    break;
                case EnumTipoFuncionalidad.Descartar:
                    componente = this.descartar;
                    break;
                default:
                    throw new Exception("Error: Dinamica - ObtenerPaso (No debe entrar a estar parte del código, no se encontro ningún componente");
            }

            return componente.ObtenerPaso(dinamicaMensaje, pasoDinamica);
        }
 public TransformacionMensaje(DinamicaDeMensaje dinamicaMensaje, TRANSFORMACION entidad, PASO_DINAMICA pasoDinamica, IFactoryDA factoryDA, IDllDinamica dllDinamica)
     : base(pasoDinamica)
 {
     DinamicaMensaje = dinamicaMensaje;
     FactoryDa = factoryDA;
     Entidad = entidad;
     DllDinamica = dllDinamica;
 }
        public Paso ObtenerPaso(DinamicaDeMensaje dinamicaMensaje, PASO_DINAMICA paso)
        {
            EnumTipoFuncionalidad tipoMensaje = (EnumTipoFuncionalidad)
                        Enum.ToObject(typeof(EnumTipoFuncionalidad), paso.PDT_FUNCIONALIDAD);

            switch (tipoMensaje)
            {
                case EnumTipoFuncionalidad.Enviar:
                    return new EnviarMensaje(paso);
                case EnumTipoFuncionalidad.Recibir:
                    return new RecibirMensaje(paso);
                default:
                    throw new Exception("Error: Comunicacion - ObtenerPaso (No se encontra ninguna comunicacion");
            }
        }
예제 #4
0
 private void EnviarMensaje(Message msg, DinamicaDeMensaje dinamicaMensaje, byte[] mensajeSaliente)
 {
     switch (dinamicaMensaje.ResultadoDinamica.Tipo)
     {
         case EnumResultadoDinamica.EnviarRespuesta:
             EnviarRespuesta(msg.ResponseQueue, mensajeSaliente);
             break;
         case EnumResultadoDinamica.DescartarMensaje:
             DescartarMensaje(msg.ResponseQueue);
             break;
         case EnumResultadoDinamica.EsperarRespuesta:
             Tanqueo.Tanquear(dinamicaMensaje);
             EsperarRespuesta(dinamicaMensaje.ResultadoDinamica.EntidadComunicacion.EDC_COLA
                              , mensajeSaliente);
             break;
     }
 }
예제 #5
0
 private byte[] ConvertirMensajeSaliente(DinamicaDeMensaje dinamicaMensaje)
 {
     Convertidor convertidor = Convertidor.ObtenerConvertidor(null, dinamicaMensaje.Mensaje.Tipo);
     return convertidor.Convertir(dinamicaMensaje.Mensaje);
 }
예제 #6
0
        private void ProcesarMensajeRequest(Message msg)
        {
            try
            {
                IEnumerable<PASO_DINAMICA> pasosDinamica;

                Mensaje mensajeEntrante = ConvertirMensajeEntrante(msg, out pasosDinamica);

                DinamicaDeMensaje dinamicaMensaje = new DinamicaDeMensaje(dinamica, mensajeEntrante, pasosDinamica);
                dinamicaMensaje.ProcesarRequest();

                byte[] mensajeSaliente = ConvertirMensajeSaliente(dinamicaMensaje);

                EnviarMensaje(msg, dinamicaMensaje, mensajeSaliente);
            }
            catch (Exception ex)
            {
                DescartarMensaje(msg.ResponseQueue);
            }
        }
예제 #7
0
 public void Tanquear(DinamicaDeMensaje dinamica)
 {
     MensajeTanqueado mensajeTanqueado;
     mensajeTanqueado.dinamica = dinamica;
     MensajesTanqueados.Add(mensajeTanqueado);
 }
예제 #8
0
 public Paso ObtenerPaso(DinamicaDeMensaje dinamicaMensaje, PASO_DINAMICA pasoDinamica)
 {
     return new ValidacionMensaje(this, pasoDinamica);
 }
예제 #9
0
 public DinamicaDeMensaje ProcesarMensajeResponse(DinamicaDeMensaje dinamicaMensaje)
 {
     dinamicaMensaje.ProcesarResponse();
     return dinamicaMensaje;
 }
 public Paso ObtenerPaso(DinamicaDeMensaje dinamicaMensaje, PASO_DINAMICA pasoDinamica)
 {
     return new TransformacionMensaje(dinamicaMensaje,ObtenerTransformacion(pasoDinamica),
         pasoDinamica, FactoryDa, DllDinamica);
 }
예제 #11
0
 public Paso ObtenerPaso(DinamicaDeMensaje dinamicaMensaje, PASO_DINAMICA pasoDinamica)
 {
     return this;
 }