示例#1
0
        public IEnumerable <ResultDTO> crearModificarInvestigador(InvestigadorDTO investigador)
        {
            ProcedimientoParametroDTO parametro = new ProcedimientoParametroDTO();

            parametro.NombreProcedimiento = "PKG_CRUDS.PRC_MERGE_INVESTIGADOR";
            parametro.AdicionarParametro(":p_id_investigador", investigador.ID_INVESTIGADOR, DireccionParametro.Input, TipoParametro.Int32);
            parametro.AdicionarParametro(":p_id_grado", investigador.ID_GRADO, DireccionParametro.Input, TipoParametro.Int32);
            parametro.AdicionarParametro(":p_documento", investigador.DOCUMENTO, DireccionParametro.Input, TipoParametro.Varchar2);
            parametro.AdicionarParametro(":p_nombres", investigador.NOMBRES, DireccionParametro.Input, TipoParametro.Varchar2);
            parametro.AdicionarParametro(":p_apellidos", investigador.APELLIDOS, DireccionParametro.Input, TipoParametro.Varchar2);
            parametro.AdicionarParametro(":p_email", investigador.EMAIL, DireccionParametro.Input, TipoParametro.Varchar2);
            parametro.AdicionarParametro(":p_telefono", investigador.TELEFONO, DireccionParametro.Input, TipoParametro.Varchar2);
            parametro.AdicionarParametro(":p_direccion", investigador.DIRECCION, DireccionParametro.Input, TipoParametro.Varchar2);
            parametro.AdicionarParametro(":p_estudios", investigador.ESTUDIOS, DireccionParametro.Input, TipoParametro.Varchar2);
            parametro.AdicionarParametro(":p_categorizado", investigador.CATEGORIZADO, DireccionParametro.Input, TipoParametro.Varchar2);
            parametro.AdicionarParametro(":p_categorizado_valor", investigador.CATEGORIZADO_VALOR, DireccionParametro.Input, TipoParametro.Varchar2);
            parametro.AdicionarParametro(":p_profesor", investigador.PROFESOR, DireccionParametro.Input, TipoParametro.Varchar2);
            parametro.AdicionarParametro(":p_estudiante", investigador.ESTUDIANTE, DireccionParametro.Input, TipoParametro.Varchar2);
            parametro.AdicionarParametro(":p_mensaje", null, DireccionParametro.Output, TipoParametro.RefCursor);

            var respuesta = EjecutarProcedure <ResultDTO>(parametro);

            if (respuesta == null)
            {
                throw new Exception();
            }
            return(respuesta);
        }
示例#2
0
        public IEnumerable <ResultDTO> crearModificarUsuario(UsuarioDTO user)
        {
            ProcedimientoParametroDTO parametro = new ProcedimientoParametroDTO();

            parametro.NombreProcedimiento = "PKG_CRUDS.PRC_MERGE_USUARIOS";
            parametro.AdicionarParametro(":p_id_usuario", user.ID_USUARIO, DireccionParametro.Input, TipoParametro.Int32);
            parametro.AdicionarParametro(":p_id_tipo_documento", user.ID_TIPO_DOCUMENTO, DireccionParametro.Input, TipoParametro.Int32);
            parametro.AdicionarParametro(":p_documento", user.DOCUMENTO, DireccionParametro.Input, TipoParametro.Varchar2);
            parametro.AdicionarParametro(":p_nombres", user.NOMBRES, DireccionParametro.Input, TipoParametro.Varchar2);
            parametro.AdicionarParametro(":p_apellidos", user.APELLIDOS, DireccionParametro.Input, TipoParametro.Varchar2);
            parametro.AdicionarParametro(":p_id_grado", user.ID_GRADO, DireccionParametro.Input, TipoParametro.Int32);
            parametro.AdicionarParametro(":p_id_unidad", user.ID_UNIDAD, DireccionParametro.Input, TipoParametro.Int32);
            parametro.AdicionarParametro(":p_email", user.EMAIL, DireccionParametro.Input, TipoParametro.Varchar2);
            parametro.AdicionarParametro(":p_contrasena", user.CONTRASENA, DireccionParametro.Input, TipoParametro.Varchar2);
            parametro.AdicionarParametro(":p_telefono", user.TELEFONO, DireccionParametro.Input, TipoParametro.Varchar2);
            parametro.AdicionarParametro(":p_usuario", user.USUARIO, DireccionParametro.Input, TipoParametro.Varchar2);
            parametro.AdicionarParametro(":p_perfil", user.PERFIL, DireccionParametro.Input, TipoParametro.Int32);
            parametro.AdicionarParametro(":p_resultado", null, DireccionParametro.Output, TipoParametro.RefCursor);

            var respuesta = EjecutarProcedure <ResultDTO>(parametro);

            if (respuesta == null)
            {
                throw new Exception();
            }
            return(respuesta);
        }
示例#3
0
        public IEnumerable <Object> MergeProductoInv(Producto producto, string id)
        {
            ProcedimientoParametroDTO parametro = new ProcedimientoParametroDTO();

            parametro.NombreProcedimiento = "PKG_CRUDS.prc_merge_producto_inv";
            parametro.AdicionarParametro(":p_id_investigacion", id, DireccionParametro.Input, TipoParametro.Varchar2);
            parametro.AdicionarParametro(":p_tipo_producto", producto.TipoProducto, DireccionParametro.Input, TipoParametro.Varchar2);
            parametro.AdicionarParametro(":p_autor", producto.Autor, DireccionParametro.Input, TipoParametro.Varchar2);
            parametro.AdicionarParametro(":p_nombre_revista", producto.NombreRevista, DireccionParametro.Input, TipoParametro.Varchar2);
            parametro.AdicionarParametro(":p_nombre_articulo", producto.NombreArticulo, DireccionParametro.Input, TipoParametro.Varchar2);
            parametro.AdicionarParametro(":p_ano", producto.Anio, DireccionParametro.Input, TipoParametro.Varchar2);
            parametro.AdicionarParametro(":p_codigo_issn", producto.CodigoISSN, DireccionParametro.Input, TipoParametro.Varchar2);
            parametro.AdicionarParametro(":p_codigo_isbn", "", DireccionParametro.Input, TipoParametro.Varchar2);
            parametro.AdicionarParametro(":p_nombre_libro", producto.NombreLibro, DireccionParametro.Input, TipoParametro.Varchar2);
            parametro.AdicionarParametro(":p_pagina_inicio", producto.PaginaInicio, DireccionParametro.Input, TipoParametro.Int32);
            parametro.AdicionarParametro(":p_pagina_final", producto.PaginaFinal, DireccionParametro.Input, TipoParametro.Int32);
            parametro.AdicionarParametro(":p_editorial", producto.Editorial, DireccionParametro.Input, TipoParametro.Varchar2);
            parametro.AdicionarParametro(":p_fecha_publicacion", producto.FechaPublicacion, DireccionParametro.Input, TipoParametro.Varchar2);
            parametro.AdicionarParametro(":p_mensaje", null, DireccionParametro.Output, TipoParametro.RefCursor);
            var respuesta = EjecutarProcedure <ResultDTO>(parametro);

            if (respuesta == null)
            {
                throw new Exception();
            }
            return(respuesta);
        }
示例#4
0
        public IEnumerable <UsuarioDTO> ConsultaUsuarios()
        {
            ProcedimientoParametroDTO parametro = new ProcedimientoParametroDTO();

            parametro.NombreProcedimiento = "PKG_CRUDS.prc_get_usuarios";
            parametro.AdicionarParametro(":P_RESULTADO", null, DireccionParametro.Output, TipoParametro.RefCursor);
            var respuesta = EjecutarProcedure <UsuarioDTO>(parametro);

            if (respuesta == null)
            {
                throw new Exception();
            }
            return(respuesta);
        }
示例#5
0
        public IEnumerable <InvestigadorDTO> ConsultaInvestigadores()
        {
            ProcedimientoParametroDTO parametro = new ProcedimientoParametroDTO();

            parametro.NombreProcedimiento = "PKG_CRUDS.PRC_GET_INVESTIGADOR";
            parametro.AdicionarParametro(":P_RESULTADO", null, DireccionParametro.Output, TipoParametro.RefCursor);
            var respuesta = EjecutarProcedure <InvestigadorDTO>(parametro);

            if (respuesta == null)
            {
                throw new Exception();
            }
            return(respuesta);
        }
示例#6
0
        public IEnumerable <InvestigacionInstitucionalDTO> ConsultarInvestigacionIns()
        {
            ProcedimientoParametroDTO parametro = new ProcedimientoParametroDTO();

            parametro.NombreProcedimiento = "PKG_CRUDS.prc_datos_inv";
            parametro.AdicionarParametro(":p_resultado", null, DireccionParametro.Output, TipoParametro.RefCursor);
            var respuesta = EjecutarProcedure <InvestigacionInstitucionalDTO>(parametro);

            if (respuesta == null)
            {
                throw new Exception();
            }
            return(respuesta);
        }
示例#7
0
        public IEnumerable <ResultDTO> eliminarInvestigador(int id)
        {
            ProcedimientoParametroDTO parametro = new ProcedimientoParametroDTO();

            parametro.NombreProcedimiento = "PKG_CRUDS.PRC_DELETE_INVESTIGADOR";
            parametro.AdicionarParametro(":p_id_investigador", id, DireccionParametro.Input, TipoParametro.Int32);
            parametro.AdicionarParametro(":p_resultado", null, DireccionParametro.Output, TipoParametro.RefCursor);

            var respuesta = EjecutarProcedure <ResultDTO>(parametro);

            if (respuesta == null)
            {
                throw new Exception();
            }
            return(respuesta);
        }
示例#8
0
        public IEnumerable <Object> EliminaInvestigacion(string investigacion)
        {
            ProcedimientoParametroDTO parametro = new ProcedimientoParametroDTO();

            parametro.NombreProcedimiento = "PKG_CRUDS.prc_elimina_inv";
            parametro.AdicionarParametro(":p_id_investigacion", investigacion, DireccionParametro.Input, TipoParametro.Varchar2);
            parametro.AdicionarParametro(":p_resultado", null, DireccionParametro.Output, TipoParametro.RefCursor);

            var respuesta = EjecutarProcedure <ResultDTO>(parametro);

            if (respuesta == null)
            {
                throw new Exception();
            }
            return(respuesta);
        }
示例#9
0
        public int Login(LoginRequest user)
        {
            ProcedimientoParametroDTO parametro = new ProcedimientoParametroDTO();

            parametro.NombreProcedimiento = "PKG_LOGIN.prc_acceso";
            parametro.AdicionarParametro(":p_documento", user.Username, DireccionParametro.Input, TipoParametro.Varchar2);
            parametro.AdicionarParametro(":p_contrasena", user.Password, DireccionParametro.Input, TipoParametro.Varchar2);
            parametro.AdicionarParametro(":p_respuesta", null, DireccionParametro.Output, TipoParametro.Int32);
            var respuesta = EjecutarProcedure <Int32>(parametro);

            if (respuesta == null)
            {
                throw new Exception();
            }
            return(respuesta.FirstOrDefault());
        }
        public IEnumerable <RedInvestigacionBaseDTO> GetRedes()
        {
            ProcedimientoParametroDTO parametro = new ProcedimientoParametroDTO();

            parametro.NombreProcedimiento = "PKG_CRUDS_ADIC.PRC_GET_RED_INV";

            parametro.AdicionarParametro(":p_resultado", null, DireccionParametro.Output, TipoParametro.RefCursor);

            var respuesta = EjecutarProcedure <RedInvestigacionBaseDTO>(parametro);

            if (respuesta == null)
            {
                throw new Exception();
            }
            return(respuesta);
        }
示例#11
0
        public IEnumerable <Object> MergeInvestigadoresInv(Investigarores investigador, string id)
        {
            ProcedimientoParametroDTO parametro = new ProcedimientoParametroDTO();

            parametro.NombreProcedimiento = "PKG_CRUDS.prc_merge_investigadores_inv";
            parametro.AdicionarParametro(":p_id_investigacion", id, DireccionParametro.Input, TipoParametro.Varchar2);
            parametro.AdicionarParametro(":p_id_investigador", investigador.IdInvestigador, DireccionParametro.Input, TipoParametro.Int32);
            parametro.AdicionarParametro(":p_mensaje", null, DireccionParametro.Output, TipoParametro.RefCursor);

            var respuesta = EjecutarProcedure <ResultDTO>(parametro);

            if (respuesta == null)
            {
                throw new Exception();
            }
            return(respuesta);
        }
示例#12
0
        public List <CasoEmblematicoDTO> ConsultarCasosEmblem()
        {
            ProcedimientoParametroDTO parametro = new ProcedimientoParametroDTO();

            parametro.NombreProcedimiento = "PKG_CRUDS_ADIC.prc_get_caso_emblematico";

            parametro.AdicionarParametro(":p_id_caso", null, DireccionParametro.Input, TipoParametro.Varchar2);
            parametro.AdicionarParametro(":p_resultado", null, DireccionParametro.Output, TipoParametro.RefCursor);

            var respuesta = EjecutarProcedure <CasoEmblematicoDTO>(parametro).ToList();

            if (respuesta == null)
            {
                throw new Exception();
            }
            return(respuesta);
        }
示例#13
0
        public IEnumerable <Object> MergeAreaLineaInv(AreaLinea area, string id)
        {
            ProcedimientoParametroDTO parametro = new ProcedimientoParametroDTO();

            parametro.NombreProcedimiento = "PKG_CRUDS.prc_merge_area_linea_inv";
            parametro.AdicionarParametro(":p_id_investigacion", id, DireccionParametro.Input, TipoParametro.Varchar2);
            parametro.AdicionarParametro(":p_id_area", area.IdArea, DireccionParametro.Input, TipoParametro.Varchar2);
            parametro.AdicionarParametro(":p_id_linea", area.IdLinea, DireccionParametro.Input, TipoParametro.Decimal);
            parametro.AdicionarParametro(":p_mensaje", null, DireccionParametro.Output, TipoParametro.RefCursor);

            var respuesta = EjecutarProcedure <ResultDTO>(parametro);

            if (respuesta == null)
            {
                throw new Exception();
            }
            return(respuesta);
        }
示例#14
0
        public IEnumerable <ResultDTO> MergeCasoEmbInv(decimal idCaso, int idInvestigador)
        {
            ProcedimientoParametroDTO parametro = new ProcedimientoParametroDTO();

            parametro.NombreProcedimiento = "PKG_CRUDS_ADIC.prc_merge_caso_emb_inv";

            parametro.AdicionarParametro(":p_id_caso", idCaso, DireccionParametro.Input, TipoParametro.Decimal);
            parametro.AdicionarParametro(":p_id_investigador", idInvestigador, DireccionParametro.Input, TipoParametro.Int32);
            parametro.AdicionarParametro(":p_mensaje", null, DireccionParametro.Output, TipoParametro.RefCursor);

            var respuesta = EjecutarProcedure <ResultDTO>(parametro);

            if (respuesta == null)
            {
                throw new Exception();
            }
            return(respuesta);
        }
示例#15
0
        public IEnumerable <AreaDTO> ConsultaAreas()
        {
            ProcedimientoParametroDTO parametro = new ProcedimientoParametroDTO();

            parametro.NombreProcedimiento = "PKG_CRUDS.prc_get_area";


            parametro.AdicionarParametro(":P_RESULTADO", null, DireccionParametro.Output, TipoParametro.RefCursor);
            //parametro.AdicionarParametro(ConstantesModelo.V_error, null, DireccionParametro.Output, TipoParametro.Int32);
            //parametro.AdicionarParametro(ConstantesModelo.V_desc_error, null, DireccionParametro.Output, TipoParametro.Varchar2, 255);

            var respuesta = EjecutarProcedure <AreaDTO>(parametro);

            if (respuesta == null)
            {
                throw new Exception();
            }
            return(respuesta);
        }
示例#16
0
        public IEnumerable <Object> MergePresupuestoInv(Presupuesto presupuesto, string id)
        {
            ProcedimientoParametroDTO parametro = new ProcedimientoParametroDTO();

            parametro.NombreProcedimiento = "PKG_CRUDS.prc_merge_presup_investigacion";
            parametro.AdicionarParametro(":p_id_investigacion", id, DireccionParametro.Input, TipoParametro.Varchar2);
            parametro.AdicionarParametro(":p_nombre_presupuesto", presupuesto.NombrePresupuesto, DireccionParametro.Input, TipoParametro.Varchar2);
            parametro.AdicionarParametro(":p_desc_presupuesto", presupuesto.DescPresupuesto, DireccionParametro.Input, TipoParametro.Varchar2);
            parametro.AdicionarParametro(":p_aporte", presupuesto.Aporte, DireccionParametro.Input, TipoParametro.Int32);
            parametro.AdicionarParametro(":p_mensaje", null, DireccionParametro.Output, TipoParametro.RefCursor);

            var respuesta = EjecutarProcedure <ResultDTO>(parametro);

            if (respuesta == null)
            {
                throw new Exception();
            }
            return(respuesta);
        }
示例#17
0
        public IEnumerable <ResultDTO> MergeCasoEmblematico(CasoEmblematicoBaseDTO caso)
        {
            ProcedimientoParametroDTO parametro = new ProcedimientoParametroDTO();

            parametro.NombreProcedimiento = "PKG_CRUDS_ADIC.prc_merge_caso_emblematico";

            parametro.AdicionarParametro(":p_id_caso", caso.ID_CASO, DireccionParametro.Input, TipoParametro.Int32);
            parametro.AdicionarParametro(":p_nombre_caso", caso.NOMBRE_CASO, DireccionParametro.Input, TipoParametro.Varchar2);
            parametro.AdicionarParametro(":p_lugar_afectacion", caso.LUGAR_AFECTACION, DireccionParametro.Input, TipoParametro.Varchar2);
            parametro.AdicionarParametro(":p_actividades", caso.ACTIVIDADES, DireccionParametro.Input, TipoParametro.Varchar2);
            parametro.AdicionarParametro(":p_mensaje", null, DireccionParametro.Output, TipoParametro.RefCursor);

            var respuesta = EjecutarProcedure <ResultDTO>(parametro);

            if (respuesta == null)
            {
                throw new Exception();
            }
            return(respuesta);
        }
示例#18
0
        public IEnumerable <Object> MergeEventosInv(Eventos evento, string id)
        {
            ProcedimientoParametroDTO parametro = new ProcedimientoParametroDTO();

            parametro.NombreProcedimiento = "PKG_CRUDS.prc_merge_eventos_inv";
            parametro.AdicionarParametro(":p_id_investigacion", id, DireccionParametro.Input, TipoParametro.Varchar2);
            parametro.AdicionarParametro(":p_tipo", evento.Tipo, DireccionParametro.Input, TipoParametro.Varchar2);
            parametro.AdicionarParametro(":p_participacion", evento.Participacion, DireccionParametro.Input, TipoParametro.Varchar2);
            parametro.AdicionarParametro(":p_fecha", evento.Fecha, DireccionParametro.Input, TipoParametro.Varchar2);
            parametro.AdicionarParametro(":p_tipo_region", evento.TipoRegion, DireccionParametro.Input, TipoParametro.Varchar2);
            parametro.AdicionarParametro(":p_desc_region", evento.DescRegion, DireccionParametro.Input, TipoParametro.Varchar2);
            parametro.AdicionarParametro(":p_desc_subregion", evento.DescSubRegion, DireccionParametro.Input, TipoParametro.Varchar2);
            parametro.AdicionarParametro(":p_mensaje", null, DireccionParametro.Output, TipoParametro.RefCursor);

            var respuesta = EjecutarProcedure <ResultDTO>(parametro);

            if (respuesta == null)
            {
                throw new Exception();
            }
            return(respuesta);
        }
        public IEnumerable <ResultDTO> MergeRedInvestigacion(RedInvestigacionBaseDTO red)
        {
            ProcedimientoParametroDTO parametro = new ProcedimientoParametroDTO();

            parametro.NombreProcedimiento = "PKG_CRUDS_ADIC.prc_merge_red_investigacion";

            parametro.AdicionarParametro(":p_id_red", red.ID_RED, DireccionParametro.Input, TipoParametro.Int32);
            parametro.AdicionarParametro(":p_nombre_red", red.NOMBRE_RED, DireccionParametro.Input, TipoParametro.Varchar2);
            parametro.AdicionarParametro(":p_entidad", red.ENTIDAD, DireccionParametro.Input, TipoParametro.Varchar2);
            parametro.AdicionarParametro(":p_ano_creacion", red.ANO_CREACION, DireccionParametro.Input, TipoParametro.Varchar2);
            parametro.AdicionarParametro(":p_sede_depto", red.SEDE_DEPTO, DireccionParametro.Input, TipoParametro.Varchar2);
            parametro.AdicionarParametro(":p_sede_ciudad", red.SEDE_CIUDAD, DireccionParametro.Input, TipoParametro.Varchar2);
            parametro.AdicionarParametro(":p_mensaje", null, DireccionParametro.Output, TipoParametro.RefCursor);

            var respuesta = EjecutarProcedure <ResultDTO>(parametro);

            if (respuesta == null)
            {
                throw new Exception();
            }
            return(respuesta);
        }
示例#20
0
        public string MergeUnidad(UnidadDTO unidad)
        {
            ProcedimientoParametroDTO parametro = new ProcedimientoParametroDTO();

            parametro.NombreProcedimiento = "PKG_CRUDS.PRC_MERGE_UNIDAD";

            parametro.AdicionarParametro(":p_id_unidad", unidad.ID_UNIDAD, DireccionParametro.Input, TipoParametro.Decimal);
            parametro.AdicionarParametro(":p_sigla", unidad.SIGLA, DireccionParametro.Input, TipoParametro.Varchar2);
            parametro.AdicionarParametro(":p_descripcion", unidad.DESCRIPCION, DireccionParametro.Input, TipoParametro.Varchar2);
            parametro.AdicionarParametro(":p_id_tipo", unidad.ID_TIPO, DireccionParametro.Input, TipoParametro.Decimal);
            parametro.AdicionarParametro(":p_mensaje", null, DireccionParametro.Output, TipoParametro.RefCursor);

            EjecutarProcedure <RespuestaDTO>(parametro);

            string respuesta = parametro.ArregloParametros.Find(x => x.Nombre.Equals(":p_mensaje")).Valor.ToString();

            if (!respuesta.Equals("OK"))
            {
                throw new Exception();
            }
            return(respuesta);
        }
示例#21
0
        public IEnumerable <Object> MergeEstimulosInv(Estimulos estimulo, string id)
        {
            ProcedimientoParametroDTO parametro = new ProcedimientoParametroDTO();

            parametro.NombreProcedimiento = "PKG_CRUDS.prc_merge_estimulos_inv";
            parametro.AdicionarParametro(":p_id_investigacion", id, DireccionParametro.Input, TipoParametro.Varchar2);
            parametro.AdicionarParametro(":p_condecoraciones", estimulo.Condecoraciones, DireccionParametro.Input, TipoParametro.Varchar2);
            parametro.AdicionarParametro(":p_felicitaciones", estimulo.Felicitaciones, DireccionParametro.Input, TipoParametro.Varchar2);
            parametro.AdicionarParametro(":p_personaje_mes", estimulo.PersonajeMes, DireccionParametro.Input, TipoParametro.Varchar2);
            parametro.AdicionarParametro(":p_permiso", estimulo.Permiso, DireccionParametro.Input, TipoParametro.Varchar2);
            parametro.AdicionarParametro(":p_estatuillas", estimulo.Estatuillas, DireccionParametro.Input, TipoParametro.Varchar2);
            parametro.AdicionarParametro(":p_monedas", estimulo.Monedas, DireccionParametro.Input, TipoParametro.Varchar2);
            parametro.AdicionarParametro(":p_capacitaciones", estimulo.Capacitaciones, DireccionParametro.Input, TipoParametro.Varchar2);
            parametro.AdicionarParametro(":p_mensaje", null, DireccionParametro.Output, TipoParametro.RefCursor);

            var respuesta = EjecutarProcedure <ResultDTO>(parametro);

            if (respuesta == null)
            {
                throw new Exception();
            }
            return(respuesta);
        }
示例#22
0
        public Tuple <string, string> MergeInvestigacion(InvInstitucional investigacion)
        {
            ProcedimientoParametroDTO parametro = new ProcedimientoParametroDTO();

            parametro.NombreProcedimiento = "PKG_CRUDS.prc_merge_investigacion";

            parametro.AdicionarParametro(":p_id_investigacion", investigacion.IdInvestigacion, DireccionParametro.Input, TipoParametro.Varchar2);
            parametro.AdicionarParametro(":p_titulo", investigacion.Titulo, DireccionParametro.Input, TipoParametro.Varchar2);
            parametro.AdicionarParametro(":p_direccion", investigacion.Direccion, DireccionParametro.Input, TipoParametro.Decimal);
            parametro.AdicionarParametro(":p_ano", investigacion.Anio, DireccionParametro.Input, TipoParametro.Varchar2);
            parametro.AdicionarParametro(":p_participacion", investigacion.Participacion, DireccionParametro.Input, TipoParametro.Varchar2);
            parametro.AdicionarParametro(":p_exp_participa", investigacion.ExParticipa, DireccionParametro.Input, TipoParametro.Varchar2);
            parametro.AdicionarParametro(":p_escuela", investigacion.Escuela, DireccionParametro.Input, TipoParametro.Decimal);
            parametro.AdicionarParametro(":p_formulario", investigacion.Formulario, DireccionParametro.Input, TipoParametro.Clob);
            parametro.AdicionarParametro(":p_mensaje", null, DireccionParametro.Output, TipoParametro.RefCursor);

            var respuesta = EjecutarProcedure <ResultInvInstitucionalDTO>(parametro);

            if (respuesta == null)
            {
                throw new Exception();
            }
            return(new Tuple <string, string>(respuesta.Single().codigo, respuesta.Single().mensaje));
        }
示例#23
0
        protected IEnumerable <T> EjecutarProcedure <T>(ProcedimientoParametroDTO param)
        {
            #region Validation Params
            if (param == null)
            {
                throw new ArgumentNullException("param");
            }
            #endregion

            var           esquema = (ConfigurationManager.AppSettings["Esquema"] ?? "sicei");
            StringBuilder query   = new StringBuilder();
            query.AppendFormat("BEGIN  {0}.{1}({2}); END;", esquema, param.NombreProcedimiento, string.Join(",", param.ArregloParametros.Select(w => w.Nombre)));
            OracleParameter[] arrayParametros = new OracleParameter[param.ArregloParametros.Count];

            for (int index = 0; index < param.ArregloParametros.Count; index++)
            {
                var             item = param.ArregloParametros[index];
                OracleParameter parametroProcedimiento = new OracleParameter();

                try
                {
                    parametroProcedimiento.ParameterName = item.Nombre;
                    parametroProcedimiento.Direction     = (ParameterDirection)Enum.Parse(typeof(ParameterDirection), item.Direccion);
                    parametroProcedimiento.OracleDbType  = (OracleDbType)Enum.Parse(typeof(OracleDbType), item.Tipo);
                    parametroProcedimiento.Value         = item.Valor;
                    parametroProcedimiento.Size          = item.Longitud;
                    arrayParametros[index] = parametroProcedimiento;
                }
                catch (Exception)
                {
                    parametroProcedimiento.Dispose();
                    throw;
                }
            }


            // Crea cursores
            IEnumerable <T> c1 = new List <T>();

            // Conexión por ADO
            using (OracleConnection conn = new OracleConnection(Con))
            {
                conn.Open();
                OracleCommand cmd = new OracleCommand
                {
                    Connection  = conn,
                    CommandType = CommandType.Text,
                    CommandText = query.ToString()
                };
                cmd.Parameters.AddRange(arrayParametros);

                using (OracleDataReader dr = cmd.ExecuteReader())
                {
                    c1 = DataReaderMapToList <T>(dr); // Mapea el resultado de la query al Dto pasado como T
                    //dr.NextResult(); //Lee el siguiente cursor
                    //c2 = DataReaderMapToList<U>(dr); // Mapea el resultado de la query al Dto pasado como U
                }
            }

            foreach (OracleParameter op in arrayParametros)
            {
                for (int index = 0; index < param.ArregloParametros.Count; index++)
                {
                    var item = param.ArregloParametros[index];
                    if (op.ParameterName == item.Nombre)
                    {
                        item.Valor = (object)op.Value;
                    }

                    param.ArregloParametros[index] = item;
                }
            }

            return(c1);
        }