public override string Transformar(TRANSFORMACION_CAMPO entidadTransformacion, Mensaje mensaje)
        {
            List<PARAMETRO_TRANSFORMACION_CAMPO> listaParametros = entidadTransformacion.PARAMETRO_TRANSFORMACION_CAMPO.ToList();

            StringBuilder concatenacion = new StringBuilder();

            foreach (PARAMETRO_TRANSFORMACION_CAMPO parametro in listaParametros)
            {
                EnumTipoParametroTransformacionCampo tipoParametroTransformacion = (EnumTipoParametroTransformacionCampo)
                                Enum.ToObject(typeof(EnumTipoParametroTransformacionCampo), parametro.PTC_TIPO);

                Campo campoOrigen = mensaje.Campo(parametro.CAMPO);

                Valor cadenaBuscar = campoOrigen.ValorCuerpo.SubValor(parametro.PTC_POSICION_INICIAL.Value-1, parametro.PTC_LONGITUD.Value);
                string cadenaConcatenar = null;

                switch (tipoParametroTransformacion)
                {
                    case EnumTipoParametroTransformacionCampo.Tabla:
                        cadenaConcatenar = FactoryDa.ValorTabla(parametro.TABLA.TBL_NOMBRE, parametro.COLUMNA_ORIGEN.COL_NOMBRE, parametro.COLUMNA_DESTINO.COL_NOMBRE, cadenaBuscar.Dato.ToString());
                        //TablaDA.ObtenerValorTabla
                        break;
                    case EnumTipoParametroTransformacionCampo.CampoOrigen:
                        cadenaConcatenar = cadenaBuscar.Dato.ToString();
                        break;
                    default:
                        break;
                }
                concatenacion.Append(cadenaConcatenar ?? "").Append(separador);

            }

            return TransformacionEspecifica(entidadTransformacion,concatenacion.ToString());
        }
        public static EstadoOperacion eliminarTransformacionCampo(TRANSFORMACION_CAMPO transformacionCampo)
        {
            DbFactory Factoria = DataAccessFactory.ObtenerProveedor();
            try
            {
                using (Switch contexto = new Switch())
                {
                    using (contexto.CreateConeccionScope())
                    {
                        string query =
                                "DELETE FROM TRANSFORMACION_CAMPO" +
                                      " WHERE TRM_CODIGO=@transaccion_codigo" +
                                           " AND CAM_CODIGO_CAMPO_DESTINO=@campoDestino_codigo" +
                                           " AND MEN_CODIGO_MENSAJE_DESTINO=@mensajeDestino_codigo";

                        DbCommand Comando = contexto.CreateCommand(query, CommandType.Text);
                        Comando.Parameters.Add(Factoria.CrearParametro("@transformacion_codigo", transformacionCampo.TRM_CODIGO));
                        Comando.Parameters.Add(Factoria.CrearParametro("@campoDestino_codigo", transformacionCampo.CAM_CODIGO_CAMPO_DESTINO));
                        Comando.Parameters.Add(Factoria.CrearParametro("@mensajeDestino_codigo", transformacionCampo.MEN_CODIGO_MENSAJE_DESTINO));

                        if (Comando.ExecuteNonQuery() != 1)
                        {
                            return new EstadoOperacion(false, null, null);
                        }

                        return new EstadoOperacion(true, null, null);
                    }
                }
            }
            catch (Exception e)
            {

                return new EstadoOperacion(false, e.Message, e);
            }
        }
        public static EstadoOperacion insertarTransformacionCampo(TRANSFORMACION_CAMPO transformacionCampo)
        {
            DbFactory Factoria = DataAccessFactory.ObtenerProveedor();
            try
            {
                using (Switch contexto = new Switch())
                {

                    using (contexto.CreateConeccionScope())
                    {

                        string query =
                            "INSERT INTO TRANSFORMACION_CAMPO" +
                                       "(TRM_CODIGO" +
                                       ",CAM_CODIGO_CAMPO_DESTINO" +
                                       ",MEN_CODIGO_MENSAJE_DESTINO" +
                                       ",TCM_COMPONENTE" +
                                       ",TCM_CLASE" +
                                       ",TCM_METODO" +
                                       ",TCM_TIPO" +
                                       ",TCM_PROCEDIMIENTO" +
                                       ",TCM_VALOR_CONSTANTE" +
                                       ",TCM_FUNCIONALIDAD_ESTANDAR)" +
                                 "VALUES" +
                                       "(@transformacion_codigo" +
                                       ",@campoDestino_codigo" +
                                       ",@mensajeDestino_codigo" +
                                       ",@componente" +
                                       ",@clase" +
                                       ",@metodo" +
                                       ",@tipoTransformacion_codigo" +
                                       ",@procedimiento" +
                                       ",@valorConstante" +
                                       ",@funcionalidadEstandar_codigo)";

                        DbCommand Comando = crearComando(contexto, transformacionCampo, query);

                        Comando.Parameters.Add(Factoria.CrearParametro("@tieneParametros", 0));

                        if (Comando.ExecuteNonQuery() != 1)
                        {
                            return new EstadoOperacion(false, null, null);
                        }
                        return new EstadoOperacion(true, null, null);
                    }
                }
            }
            catch (Exception e)
            {

                return new EstadoOperacion(false, e.Message, e);
            }
        }
 public override string Transformar(TRANSFORMACION_CAMPO entidadTransformacion, Mensaje mensaje)
 {
     EnumFuncionalidadEstandar funcionalidadEstandar = (EnumFuncionalidadEstandar)
                         Enum.ToObject(typeof(EnumFuncionalidadEstandar), entidadTransformacion.TCM_FUNCIONALIDAD_ESTANDAR.Value);
     switch (funcionalidadEstandar)
     {
         case EnumFuncionalidadEstandar.Fecha_DDMMYYYY:
             return SystemTime.Now().ToString("ddMMyyyy");
         case EnumFuncionalidadEstandar.Fecha_HHMM:
             return SystemTime.Now().ToString("HHmm");
         case EnumFuncionalidadEstandar.Llave_Maestra:
             throw new NotImplementedException("No se implementa funcionalidad por Llave Maestra");
         default:
             throw new NotImplementedException("Se ha producido un error");
     }
 }
        protected void btnAceptar_Click(object sender, EventArgs e)
        {
            TRANSFORMACION_CAMPO transformacionCampo = new TRANSFORMACION_CAMPO();

            transformacionCampo.TRM_CODIGO = int.Parse(Request.QueryString["Transformacion"]);
            transformacionCampo.MEN_CODIGO_MENSAJE_DESTINO = int.Parse(Request.QueryString["Mensaje"]);
            transformacionCampo.CAM_CODIGO_CAMPO_DESTINO = int.Parse(Request.QueryString["Campo"]);

            transformacionCampo.TCM_TIPO = int.Parse(this.drlTipoTransformacion.SelectedValue);

            if (this.drlTipoTransformacion.SelectedValue == TipoTransformacionBL.obtenerCodigoValorConstante().ToString())
            {
                transformacionCampo.TCM_VALOR_CONSTANTE = this.txtValorConstante.Text;
            }

            if (this.drlTipoTransformacion.SelectedValue == TipoTransformacionBL.obtenerCodigoComponente().ToString())
            {
                transformacionCampo.TCM_COMPONENTE=this.drlComponente.SelectedValue;
                transformacionCampo.TCM_CLASE=this.txtClase.Text;
                transformacionCampo.TCM_METODO = this.txtMetodo.Text;
            }

            if (this.drlTipoTransformacion.SelectedValue == TipoTransformacionBL.obtenerCodigoProcedimientoAlmacenado().ToString())
            {
                transformacionCampo.TCM_PROCEDIMIENTO = this.txtProcedimientoBD.Text;
            }

            if (this.drlTipoTransformacion.SelectedValue == TipoTransformacionBL.obtenerCodigoFuncionalidadEstandar().ToString())
            {
                transformacionCampo.TCM_FUNCIONALIDAD_ESTANDAR = int.Parse(this.drlFuncionalidadEstandar.SelectedValue);

            }

            EstadoOperacion resultado = TransformacionCampoBL.insertarTransformacionCampo(transformacionCampo);

            if (resultado.Estado)
            {
                string url = string.Format("~/Operacion/MantenimientoTransformacionCampo/ModificarTransformacionCampo.aspx?Transformacion={0}&Mensaje={1}&Campo={2}"
                    , Request.QueryString["Transformacion"], Request.QueryString["Mensaje"], Request.QueryString["Campo"]);

                Response.Redirect(url);
            }
            else
            {
                this.lblMensaje.Text = resultado.Mensaje;
            }
        }
        public TransformacionCampo TransformacionCampo(TRANSFORMACION_CAMPO entidadTransformacionCampo)
        {
            EnumTipoTransformacion tipoTransformacion = (EnumTipoTransformacion)
                Enum.ToObject(typeof(EnumTipoTransformacion), entidadTransformacionCampo.TCM_TIPO);

            switch (tipoTransformacion)
            {
                case EnumTipoTransformacion.ValorConstante:
                    return new ValorConstante();
                case EnumTipoTransformacion.ProcedimientoAlmacenado:
                    return new Procedimiento(FactoryDa);
                case EnumTipoTransformacion.FuncionalidadEstandar:
                    return new FuncionalidadEstandar();
                case EnumTipoTransformacion.Concatenacion:
                    return new Concatenacion(FactoryDa);
                case EnumTipoTransformacion.Componente:
                    return new TipoTransformacion.Componente(DllDinamica, FactoryDa);
                default:
                    throw new NotImplementedException("Default option Transformacion Campo");
            }
        }
 public static EstadoOperacion modificarTransformacionCampo(TRANSFORMACION_CAMPO transformacionCampo)
 {
     return DataAccess.Operacion.TransformacionCampoDA.modificarTransformacionCampo(transformacionCampo);
 }
 public override String Transformar(TRANSFORMACION_CAMPO entidadTransformacion, Mensaje mensaje)
 {
     return entidadTransformacion.TCM_VALOR_CONSTANTE;
 }
 protected virtual string TransformacionEspecifica(TRANSFORMACION_CAMPO entidadTransformacion,string concatenacion)
 {
     return concatenacion;
 }
        private static DbCommand crearComando(Switch contexto, TRANSFORMACION_CAMPO transformacionCampo, string query)
        {
            DbFactory Factoria = DataAccessFactory.ObtenerProveedor();
            DbCommand Comando = contexto.CreateCommand(query, CommandType.Text);
            Comando.Parameters.Add(Factoria.CrearParametro("@transformacion_codigo", transformacionCampo.TRM_CODIGO));
            Comando.Parameters.Add(Factoria.CrearParametro("@campoDestino_codigo", transformacionCampo.CAM_CODIGO_CAMPO_DESTINO));
            Comando.Parameters.Add(Factoria.CrearParametro("@mensajeDestino_codigo", transformacionCampo.MEN_CODIGO_MENSAJE_DESTINO));

            Comando.Parameters.Add(Factoria.CrearParametro("@tipoTransformacion_codigo", transformacionCampo.TCM_TIPO));

            if (transformacionCampo.TCM_TIPO == (int)EnumTipoTransformacion.Componente)
            {
                Comando.Parameters.Add(Factoria.CrearParametro("@componente", transformacionCampo.TCM_COMPONENTE));
                Comando.Parameters.Add(Factoria.CrearParametro("@clase", transformacionCampo.TCM_CLASE));
                Comando.Parameters.Add(Factoria.CrearParametro("@metodo", transformacionCampo.TCM_METODO));
            }
            else
            {
                Comando.Parameters.Add(Factoria.CrearParametro("@componente", DBNull.Value));
                Comando.Parameters.Add(Factoria.CrearParametro("@clase", DBNull.Value));
                Comando.Parameters.Add(Factoria.CrearParametro("@metodo", DBNull.Value));
            }

            if (transformacionCampo.TCM_TIPO == (int)EnumTipoTransformacion.ValorConstante)
            {
                Comando.Parameters.Add(Factoria.CrearParametro("@valorConstante", transformacionCampo.TCM_VALOR_CONSTANTE));
            }
            else
            {
                Comando.Parameters.Add(Factoria.CrearParametro("@valorConstante", DBNull.Value));
            }

            if (transformacionCampo.TCM_TIPO == (int)EnumTipoTransformacion.ProcedimientoAlmacenado)
            {
                Comando.Parameters.Add(Factoria.CrearParametro("@procedimiento", transformacionCampo.TCM_PROCEDIMIENTO));
            }
            else
            {
                Comando.Parameters.Add(Factoria.CrearParametro("@procedimiento", DBNull.Value));
            }

            if (transformacionCampo.TCM_TIPO == (int)EnumTipoTransformacion.FuncionalidadEstandar)
            {
                Comando.Parameters.Add(Factoria.CrearParametro("@funcionalidadEstandar_codigo", transformacionCampo.TCM_FUNCIONALIDAD_ESTANDAR));
            }
            else
            {
                Comando.Parameters.Add(Factoria.CrearParametro("@funcionalidadEstandar_codigo", DBNull.Value));
            }

            return Comando;
        }
        public static EstadoOperacion modificarTransformacionCampo(TRANSFORMACION_CAMPO transformacionCampo)
        {
            try
            {
                using (Switch contexto = new Switch())
                {
                    using (contexto.CreateConeccionScope())
                    {
                        string query =
                            "UPDATE TRANSFORMACION_CAMPO" +
                               " SET" +
                                  " TCM_COMPONENTE = @componente" +
                                  ",TCM_CLASE = @clase" +
                                  ",TCM_METODO = @metodo" +
                                  ",TCM_TIPO = @tipoTransformacion_Codigo" +
                                  ",TCM_PROCEDIMIENTO = @procedimiento" +
                                  ",TCM_VALOR_CONSTANTE = @valorConstante" +
                                  ",TCM_FUNCIONALIDAD_ESTANDAR = @funcionalidadEstandar_codigo" +
                            " WHERE TRM_CODIGO = @transformacion_codigo" +
                              " AND CAM_CODIGO_CAMPO_DESTINO = @campoDestino_codigo" +
                              " AND MEN_CODIGO_MENSAJE_DESTINO = @mensajeDestino_codigo";

                        DbCommand Comando = crearComando(contexto, transformacionCampo, query);

                        if (Comando.ExecuteNonQuery() != 1)
                        {
                            return new EstadoOperacion(false, null, null);
                        }

                        return new EstadoOperacion(true, null, null);
                    }
                }
            }
            catch (Exception e)
            {

                return new EstadoOperacion(false, e.Message, e);
            }
        }