internal List <ListaValor> ObterInformacaoCortes(int protocoloId)
        {
            List <ListaValor> lst = new List <ListaValor>();

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia())
            {
                Comando comando = bancoDeDados.CriarComando(@" select distinct i.id, to_char(i.data_informacao, 'DD/MM/YYYY') texto from {0}crt_inf_corte_inf i, {0}crt_informacao_corte c,
					{0}tab_protocolo p where i.caracterizacao = c.id and p.empreendimento = c.empreendimento and p.id = :protocoloId order by to_char(i.data_informacao, 'DD/MM/YYYY') "                    , EsquemaBanco);

                comando.AdicionarParametroEntrada("protocoloId", protocoloId, DbType.Int32);

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    ListaValor item;

                    while (reader.Read())
                    {
                        item         = new ListaValor();
                        item.Id      = Convert.ToInt32(reader["id"]);
                        item.Texto   = reader["texto"].ToString();
                        item.IsAtivo = true;
                        lst.Add(item);
                    }

                    reader.Close();
                }
            }

            return(lst);
        }
        public List <ListaValor> ListaValor_Leer(int idListaValor, int idLista, string valor)
        {
            SqlCommand cmd = new SqlCommand();

            cmd.CommandType = CommandType.StoredProcedure;
            cmd.CommandText = "SP_ListaValorLeer";
            cmd.Connection  = cn.cn;
            cn.Conectar();
            cmd.Parameters.Add(new SqlParameter("@IdListaValor", SqlDbType.Int)).Value = idListaValor;
            cmd.Parameters.Add(new SqlParameter("@IdLista", SqlDbType.Int)).Value      = idLista;
            cmd.Parameters.Add(new SqlParameter("@Valor", SqlDbType.Text)).Value       = valor;
            SqlDataAdapter da = new SqlDataAdapter(cmd);
            DataTable      dt = new DataTable();

            da.Fill(dt);

            List <ListaValor> ListaValorLeer = new List <ListaValor>();

            for (int i = 0; i < dt.Rows.Count; i++)
            {
                ListaValor listaValor = new ListaValor();
                listaValor.IdListaValor      = Funciones.ToInt(dt.Rows[i]["IdListaValor"]);
                listaValor.IdLista           = Funciones.ToInt(dt.Rows[i]["IdLista"]);
                listaValor.NombreLista       = Funciones.ToString(dt.Rows[i]["NombreLista"]);
                listaValor.Valor             = Funciones.ToString(dt.Rows[i]["Valor"]);
                listaValor.Descripcion       = Funciones.ToString(dt.Rows[i]["Descripcion"]);
                listaValor.CreadoPor         = Funciones.ToString(dt.Rows[i]["CreadoPor"]);
                listaValor.FechaCreacion     = Funciones.ToDateTime(dt.Rows[i]["FechaCreacion"]);
                listaValor.ModificadoPor     = Funciones.ToString(dt.Rows[i]["ModificadoPor"]);
                listaValor.FechaModificacion = Funciones.ToDateTime(dt.Rows[i]["FechaModificacion"]);
                ListaValorLeer.Add(listaValor);
            }
            cn.Desconectar();
            return(ListaValorLeer);
        }
        internal List <ListaValor> ObterDominios(int protocoloId)
        {
            List <ListaValor> lst = new List <ListaValor>();

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia())
            {
                Comando comando = bancoDeDados.CriarComando(@" select distinct d.id, d.identificacao || '/' || dc.texto || ' - ' texto, d.area_croqui  from {0}crt_regularizacao_dominio d, {0}crt_dominialidade_dominio dd,
					{0}lov_crt_domin_comprovacao dc, {0}tab_protocolo p, {0}crt_regularizacao cr where d.dominio = dd.id and dd.comprovacao = dc.id and p.empreendimento = cr.empreendimento and cr.id = d.regularizacao
					and p.id = :protocoloId "                    , EsquemaBanco);

                comando.AdicionarParametroEntrada("protocoloId", protocoloId, DbType.Int32);

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    ListaValor item;

                    while (reader.Read())
                    {
                        item         = new ListaValor();
                        item.Id      = Convert.ToInt32(reader["id"]);
                        item.Texto   = reader["texto"].ToString() + Convert.ToDecimal(reader["area_croqui"]).ToStringTrunc();
                        item.IsAtivo = true;
                        lst.Add(item);
                    }

                    reader.Close();
                }
            }

            return(lst);
        }
        public ActionResult Editar([Bind(Include = "ListaValorID,Valor,Status,Temp,TipoAtributoID")] ListaValor listaValor)
        {
            var lv = db.ListaValores.Select(a => new { a.Valor, a.TipoAtributoID, a.ListaValorID }).FirstOrDefault(a => a.Valor == listaValor.Valor && a.TipoAtributoID == listaValor.TipoAtributoID);

            if (lv != null)
            {
                if (lv.ListaValorID != listaValor.ListaValorID)
                {
                    ModelState.AddModelError("Valor", "Ya existe, intenta de nuevo.");
                }
            }

            var tipoatt = db.TipoAtributos.Find(listaValor.TipoAtributoID);

            if (ModelState.IsValid)
            {
                db.Entry(listaValor).State = EntityState.Modified;
                db.SaveChanges();


                AlertaInfo(string.Format("{0}: <b>{1}</b> se editó.", tipoatt.Nombre, listaValor.Valor), true);

                string url = Url.Action("Lista", "ListaValor", new { id = listaValor.TipoAtributoID });
                return(Json(new { success = true, url = url }));
            }

            listaValor.TipoAtributo = tipoatt;

            return(PartialView("_Editar", listaValor));
        }
        public ActionResult Crear([Bind(Include = "ListaValorID,Valor,Status,Temp,TipoAtributoID")] ListaValor listaValor, bool EsRegistroObra)
        {
            var lv = db.ListaValores.Select(a => new { a.ListaValorID, a.Valor, a.TipoAtributoID }).FirstOrDefault(a => a.Valor == listaValor.Valor && a.TipoAtributoID == listaValor.TipoAtributoID);

            if (lv != null)
            {
                ModelState.AddModelError("Valor", "Ya existe, intenta de nuevo.");
            }

            if (ModelState.IsValid)
            {
                listaValor.ListaValorID = Guid.NewGuid();
                db.ListaValores.Add(listaValor);
                db.SaveChanges();

                var tipoatt = db.TipoAtributos.Find(listaValor.TipoAtributoID);

                AlertaSuccess(string.Format("{0}: <b>{1}</b> creado.", tipoatt.Nombre, listaValor.Valor), true);


                if (EsRegistroObra)
                {
                    return(Json(new { success = true, valor = listaValor.Valor, tipoAtributoID = listaValor.TipoAtributoID, listaValorID = listaValor.ListaValorID }));
                }
                else
                {
                    string url = Url.Action("Lista", "ListaValor", new { id = listaValor.TipoAtributoID });
                    return(Json(new { success = true, url = url }));
                }
            }

            ViewBag.EsRegistroObra = EsRegistroObra;

            return(PartialView("_Crear", listaValor));
        }
        public ActionResult EliminarConfirmado(Guid id)
        {
            string btnValue = Request.Form["accionx"];

            ListaValor listaValor = db.ListaValores.Find(id);


            switch (btnValue)
            {
            case "deshabilitar":
                listaValor.Status          = false;
                db.Entry(listaValor).State = EntityState.Modified;
                db.SaveChanges();
                AlertaDefault(string.Format("Se deshabilito <b>{0}</b>", listaValor.Valor), true);
                break;

            case "eliminar":
                db.ListaValores.Remove(listaValor);
                db.SaveChanges();
                AlertaDanger(string.Format("Se elimino <b>{0}</b>", listaValor.Valor), true);
                break;

            default:
                AlertaDanger(string.Format("Ocurrio un error."), true);
                break;
            }

            string url = Url.Action("Lista", "Tecnica", new { id = listaValor.TipoAtributoID });

            return(Json(new { success = true, url = url }));
        }
        public ActionResult Crear(Guid?id, bool EsRegistroObra = false)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            TipoAtributo tipoatt = db.TipoAtributos.Find(id);

            if (tipoatt == null)
            {
                return(HttpNotFound());
            }

            ListaValor listaValor = new ListaValor()
            {
                Status         = true,
                TipoAtributoID = tipoatt.TipoAtributoID,
                TipoAtributo   = tipoatt
            };

            ViewBag.EsRegistroObra = EsRegistroObra;

            return(PartialView("_Crear", listaValor));
        }
Exemple #8
0
        public List <ListaValor> ObtenerListaValorOfertaEstudiosUTP(int idLista)
        {
            List <ListaValor> lista = new List <ListaValor>();

            DataTable dtResultado = adGeneral.ObtenerListaValor(idLista);

            foreach (DataRow fila in dtResultado.Rows)
            {
                ListaValor item = new ListaValor();
                item.IdLista           = Convert.ToInt32(fila["IDLista"]);
                item.IdListaValor      = Convert.ToString(fila["IDListaValor"]);
                item.IdListaValorPadre = Convert.ToString(fila["IDListaValorPadre"]);;
                item.Valor             = Convert.ToString(fila["Valor"]);;
                item.DescripcionValor  = Convert.ToString(fila["DescripcionValor"]);;
                item.Icono             = Convert.ToString(fila["Icono"]);;
                item.Peso        = Convert.ToInt32(fila["Peso"] == DBNull.Value ? 0 : fila["Peso"]);;
                item.ValorUTP    = Convert.ToString(fila["ValorUTP"]);;
                item.EstadoValor = Convert.ToString(fila["EstadoValor"]);;

                //EDEEST = estudiante, EDEEGR = egresado, EDEBAC = Bachiller, EDETIT = Titulado.
                if (item.IdListaValor == "EDEEST" || item.IdListaValor == "EDEEGR" || item.IdListaValor == "EDEBAC" || item.IdListaValor == "EDETIT")
                {
                    lista.Add(item);
                }
            }

            return(lista.OrderBy(m => m.Peso).ToList());
        }
Exemple #9
0
        public List <ListaValor> ObtenerListaValorOfertaTipoEstudiosEspecificos(int idLista)
        {
            List <ListaValor> lista = new List <ListaValor>();

            DataTable dtResultado = adGeneral.ObtenerListaValor(idLista);

            foreach (DataRow fila in dtResultado.Rows)
            {
                ListaValor item = new ListaValor();
                item.IdLista           = Convert.ToInt32(fila["IDLista"]);
                item.IdListaValor      = Convert.ToString(fila["IDListaValor"]);
                item.IdListaValorPadre = Convert.ToString(fila["IDListaValorPadre"]);;
                item.Valor             = Convert.ToString(fila["Valor"]);;
                item.DescripcionValor  = Convert.ToString(fila["DescripcionValor"]);;
                item.Icono             = Convert.ToString(fila["Icono"]);;
                item.Peso        = Convert.ToInt32(fila["Peso"] == DBNull.Value ? 0 : fila["Peso"]);;
                item.ValorUTP    = Convert.ToString(fila["ValorUTP"]);;
                item.EstadoValor = Convert.ToString(fila["EstadoValor"]);;

                //TEDOCT = Doctorado, TEESCO = Escolar, TEPOST = Post-Grado, TETECN = Técnico, TEUNIV = Grado Universitario
                //Sólo se agregan los tipos de estudio que son distintos a Escolar y Universitario.
                if (item.IdListaValor != "TEESCO" && item.IdListaValor != "TEUNIV")
                {
                    lista.Add(item);
                }
            }

            return(lista.OrderBy(m => m.Peso).ToList());
        }
Exemple #10
0
        /// <summary>
        /// Se agrega el parámetro de filtro para obtener los datos que contenga este valor.
        /// Por ejemplo: filtro = EMPRESA, filtra todos aquellos en donde la columna VALOR like '%FILTRO%'
        /// </summary>
        /// <param name="idLista"></param>
        /// <param name="filtro"></param>
        /// <returns></returns>
        public List <ListaValor> ObtenerListaValor(int idLista, string filtro)
        {
            List <ListaValor> lista = new List <ListaValor>();

            DataTable dtResultado = adGeneral.ObtenerListaValor(idLista);

            foreach (DataRow fila in dtResultado.Rows)
            {
                if (Convert.ToString(fila["IDListaValor"]).ToUpper().Contains(filtro.ToUpper()))
                {
                    ListaValor item = new ListaValor();
                    item.IdLista           = Convert.ToInt32(fila["IDLista"]);
                    item.IdListaValor      = Convert.ToString(fila["IDListaValor"]);
                    item.IdListaValorPadre = Convert.ToString(fila["IDListaValorPadre"]);;
                    item.Valor             = Convert.ToString(fila["Valor"]);;
                    item.DescripcionValor  = Convert.ToString(fila["DescripcionValor"]);;
                    item.Icono             = Convert.ToString(fila["Icono"]);;
                    item.Peso        = Convert.ToInt32(fila["Peso"] == DBNull.Value ? 0 : fila["Peso"]);;
                    item.ValorUTP    = Convert.ToString(fila["ValorUTP"]);;
                    item.EstadoValor = Convert.ToString(fila["EstadoValor"]);;

                    lista.Add(item);
                }
            }

            return(lista);
        }
        internal List <ListaValor> ObterDominios(int id)
        {
            List <ListaValor> lst = new List <ListaValor>();

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia())
            {
                Comando comando = bancoDeDados.CriarComando(@" select m.id, (m.matricula || ' - ' || m.cartorio || ' - ' || m.livro || ' - ' ||  m.folha) texto from {0}crt_dominialidade d, 
					{0}crt_dominialidade_dominio m, {0}tab_protocolo p where d.id = m.dominialidade and m.tipo = 1 and d.empreendimento = p.empreendimento and p.id = :protocolo "                    , EsquemaBanco);

                comando.AdicionarParametroEntrada("protocolo", id, DbType.Int32);

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    ListaValor item;

                    while (reader.Read())
                    {
                        item         = new ListaValor();
                        item.Id      = Convert.ToInt32(reader["id"]);
                        item.Texto   = reader["texto"].ToString();
                        item.IsAtivo = true;
                        lst.Add(item);
                    }

                    reader.Close();
                }
            }

            return(lst);
        }
        private ListaValor copiarListaValor(ListaValor origen)
        {
            ListaValor destino = new ListaValor();

            destino.IdListaValor = origen.IdListaValor;
            destino.Valor        = origen.Valor;

            return(destino);
        }
        public static ListaValor ListaValor_Leer(int idListaValor, int idLista, string valor)
        {
            DTListaValor      dtListaValor    = new DTListaValor();
            ListaValor        DatosListaValor = new ListaValor();
            List <ListaValor> ListaValorLeer  = dtListaValor.ListaValor_Leer(idListaValor, idLista, valor);

            foreach (ListaValor listaValor in ListaValorLeer)
            {
                DatosListaValor = listaValor;
            }
            return(DatosListaValor);
        }
Exemple #14
0
 public EmpresaVista()
 {
     Pais = new ListaValor();
     SectorEmpresarial              = new ListaValor();
     SectorEmpresarial2             = new ListaValor();
     SectorEmpresarial3             = new ListaValor();
     NumeroEmpleados                = new ListaValor();
     EstadoEmpresa                  = new ListaValor();
     Locaciones                     = new List <EmpresaLocacion>();
     Usuarios                       = new List <EmpresaUsuario>();
     PaisIdListaValor               = string.Empty;
     NumeroEmpleadosIdListaValor    = string.Empty;
     SectorEmpresarial2IdListaValor = string.Empty;
     SectorEmpresarial3IdListaValor = string.Empty;
 }
        public ActionResult Eliminar(Guid?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            ListaValor listaValor = db.ListaValores.Find(id);

            if (listaValor == null)
            {
                return(HttpNotFound());
            }

            return(PartialView("_Eliminar", listaValor));
        }
Exemple #16
0
        public List <ListaValor> ObtenerListaValorPorIdPadre(string idListaPadre)
        {
            List <ListaValor> lista = new List <ListaValor>();

            DataTable dtResultado = adGeneral.ObtenerListaValorPorIdPadre(idListaPadre);

            foreach (DataRow fila in dtResultado.Rows)
            {
                ListaValor item = new ListaValor();
                item.IdListaValor = Funciones.ToString(fila["IDListaValor"]);
                item.Valor        = Funciones.ToString(fila["Valor"]);;
                lista.Add(item);
            }

            return(lista);
        }
Exemple #17
0
        public List <ListaValor> EMPRESA_BUSCAR_INFORMACIONADICIONAL(string IDListaValorPadre)
        {
            List <ListaValor> lista = new List <ListaValor>();

            DataTable dtResultado = adGeneral.EMPRESA_BUSCAR_INFORMACIONADICIONAL(IDListaValorPadre);

            foreach (DataRow fila in dtResultado.Rows)
            {
                ListaValor item = new ListaValor();

                item.IdListaValor      = Convert.ToString(fila["IDListaValor"]);
                item.IdListaValorPadre = Convert.ToString(fila["IDListaValorPadre"]);;
                item.Valor             = Convert.ToString(fila["Valor"]);;

                lista.Add(item);
            }

            return(lista);
        }
        public CaracterizacaoVM(EmpreendimentoCaracterizacao emp)
        {
            if (emp != null)
            {
                EmpreendimentoId = emp.Id.ToString();
                Codigo           = emp.Codigo;
                CNPJ             = emp.CNPJ;
                DenominadorValor = emp.Denominador;
                DenominadorTexto = emp.DenominadorTipo;
                ListaValor municipio = new ListaValor()
                {
                    Id = 1, Texto = emp.Municipio, IsAtivo = true
                };
                ListaValor uf = new ListaValor()
                {
                    Id = 1, Texto = emp.Uf, IsAtivo = true
                };
                ListaValor zonalocalizacao = new ListaValor()
                {
                    Id = 1, Texto = emp.ZonaLocalizacaoTexto, IsAtivo = true
                };

                Municipio = ViewModelHelper.CriarSelectList(new List <ListaValor>()
                {
                    municipio
                }, true);
                Uf = ViewModelHelper.CriarSelectList(new List <ListaValor>()
                {
                    uf
                }, true);
                ZonaLocalizacao = ViewModelHelper.CriarSelectList(new List <ListaValor>()
                {
                    zonalocalizacao
                }, true);
            }
            MensagensNotificacoes = new List <string>();
        }
        public ActionResult CambiarEstadoPostulante(int idOfertaPostulante, string faseOferta)
        {
            TicketEmpresa ticket = (TicketEmpresa)Session["TicketEmpresa"];

            LNOferta lnOferta = new LNOferta();

            List <OfertaPostulante> lista = new List <OfertaPostulante>();

            OfertaPostulante ofertaPostulante = new OfertaPostulante();

            ofertaPostulante.IdOfertaPostulante = idOfertaPostulante;
            ofertaPostulante.ModificadoPor      = ticket.Usuario;
            ofertaPostulante.Seleccionado       = true; //Valor agregado por compatibilidad con otro proceso. Se coloca True para indicar que Sí debe actualizar el campo.
            lista.Add(ofertaPostulante);

            lnOferta.ActualizarFaseDePostulantes(lista, faseOferta);

            //Se obtiene la descripción de la oferta:
            LNGeneral  lnGeneral      = new LNGeneral();
            ListaValor listaValorFase = lnGeneral.ObtenerListaValor(Constantes.IDLISTA_FASE_OFERTA).Where(m => m.IdListaValor == faseOferta).FirstOrDefault();

            //Se retorna la descripción de la fase seleccionada.
            return(Content(listaValorFase.DescripcionValor));
        }
Exemple #20
0
        public async Task <ListaValor> CrearValorAsync(int idLista, string valor)
        {
            if (await ExisteNombreValor(idLista, valor.Trim()))
            {
                throw new InvalidOperationException($"Ya existe una valor en la lista con el nombre '{valor}'.");
            }

            var nuevoValor = new ListaValor
            {
                ListaId = idLista,
                Valor   = valor
            };

            db.ListaValores.Add(nuevoValor);

            var filasAfectadas = await db.SaveChangesAsync();

            if (filasAfectadas > 0)
            {
                return(nuevoValor);
            }

            return(null);
        }
 public void UTPINSERTAR_LISTAVALORHIJO(ListaValor lista)
 {
     adUtp.UTPINSERTAR_LISTAVALORHIJO(lista);
 }
 public void UTPACTUALIZAR_LISTAVALORHIJO(ListaValor lista)
 {
     adUtp.UTPACTUALIZAR_LISTAVALORHIJO(lista);
 }
        public ActionResult IniciarMigracion()
        {
            int NumFol = 0; //ultima registrada

            RecordFCSContext dbx = new RecordFCSContext();

            int bloqueGuardar = 500;


            Guid     TipoObraID = new Guid("375ead18-18db-4a8e-bfbf-7d55ee08ff80");
            TipoObra tipoObra   = dbx.TipoObras.Find(TipoObraID);

            Guid      TipoPiezaID = new Guid("c84ed502-20d8-4691-9a17-2d739c2bf4da");
            TipoPieza tipoPieza   = tipoObra.TipoPiezas.FirstOrDefault(a => a.TipoPiezaID == TipoPiezaID);

            LetraFolio letra = dbx.LetraFolios.SingleOrDefault(a => a.Nombre == "A");


            if (tipoObra != null && tipoPieza != null && letra != null)
            {
                //Extraer los atributos requeridos.
                var listaAttRegistro = tipoPieza.Atributos.Where(a => a.Status && a.MostrarAtributos.Any(b => b.TipoMostrar.Nombre == "Registro" && b.Status) && a.TipoAtributo.Status).OrderBy(a => a.Orden).ToList();

                //extraer
                con1.Open();
                string        textSql1 = string.Format("SELECT * FROM [{0}]", "ArchivoFondo");
                SqlCommand    sql1     = new SqlCommand(textSql1, con1);
                SqlDataReader leer1    = sql1.ExecuteReader();

                List <RowArchivo> listaArchivoCEHM = new List <RowArchivo>();

                int i = NumFol;

                while (leer1.Read())
                {
                    i++;
                    var rowArchivo = new RowArchivo()
                    {
                        ArchivoID       = Convert.ToInt32(i),
                        Asunto1         = Regex.Replace(leer1["Asunto1"].ToString().Trim(), @"\s+", " "),
                        Asunto2         = Regex.Replace(leer1["Asunto2"].ToString().Trim(), @"\s+", " "),
                        Caja            = Regex.Replace(leer1["Caja"].ToString().Trim(), @"\s+", " "),
                        Carpeta         = Regex.Replace(leer1["Carpeta"].ToString().Trim(), @"\s+", " "),
                        Clasificacion   = Regex.Replace(leer1["Clasificacion"].ToString().Trim(), @"\s+", " "),
                        Documento       = Regex.Replace(leer1["Documento"].ToString().Trim(), @"\s+", " "),
                        FICHA_NO        = Convert.ToInt32(leer1["FICHA_NO"]),
                        Firmadopor      = Regex.Replace(leer1["Firmadopor"].ToString().Trim(), @"\s+", " "),
                        Fojas           = Regex.Replace(leer1["Fojas"].ToString().Trim(), @"\s+", " "),
                        Fondo           = Regex.Replace(leer1["Fondo"].ToString().Trim(), @"\s+", " "),
                        Legajo          = Regex.Replace(leer1["Legajo"].ToString().Trim(), @"\s+", " "),
                        LugaryFecha     = Regex.Replace(leer1["LugaryFecha"].ToString().Trim(), @"\s+", " "),
                        NoImag          = Convert.ToInt32(leer1["NoImag"].ToString() == "" ? 0 : leer1["NoImag"]),
                        Nombredelfondo  = Regex.Replace(leer1["Nombredelfondo"].ToString().Trim(), @"\s+", " "),
                        Tipodedocumento = Regex.Replace(leer1["Tipodedocumento"].ToString().Trim(), @"\s+", " "),
                        URLFicha        = Regex.Replace(leer1["URLFicha"].ToString().Trim(), @"\s+", " "),
                        URLImagen       = Regex.Replace(leer1["URLImagen"].ToString().Trim(), @"\s+", " "),
                        Tema            = Regex.Replace(leer1["Tema"].ToString().Trim(), @"\s+", " "),
                        Dirigidoa       = Regex.Replace(leer1["Dirigidoa"].ToString().Trim(), @"\s+", " ")
                    };


                    if (rowArchivo.ArchivoID > 0)
                    {
                        listaArchivoCEHM.Add(rowArchivo);
                    }
                }
                con1.Close();
                leer1 = null;

                int numeroRow = 0;
                List <AtributoPieza> listaAdd_AttGen   = new List <AtributoPieza>();
                List <AutorPieza>    listaAdd_AttAutor = new List <AutorPieza>();


                foreach (var row in listaArchivoCEHM)
                {
                    if (numeroRow == bloqueGuardar)
                    {
                        //guardar los atributos
                        dbx.AtributoPiezas.AddRange(listaAdd_AttGen);
                        dbx.AutorPiezas.AddRange(listaAdd_AttAutor);
                        dbx.SaveChanges();

                        dbx.Dispose();
                        dbx = new RecordFCSContext();
                        dbx.Configuration.AutoDetectChangesEnabled = false;

                        numeroRow         = 0;
                        listaAdd_AttAutor = new List <AutorPieza>();
                        listaAdd_AttGen   = new List <AtributoPieza>();
                    }

                    //tratar los att de la pieza
                    var obra = new Obra()
                    {
                        ObraID        = Guid.NewGuid(),
                        FechaRegistro = DateTime.Now,
                        TipoObraID    = tipoObra.TipoObraID,
                        LetraFolioID  = letra.LetraFolioID,
                        Status        = false,
                        NumeroFolio   = row.ArchivoID
                    };
                    dbx.Obras.Add(obra);


                    //Crear pieza
                    Pieza pieza = new Pieza()
                    {
                        PiezaID       = Guid.NewGuid(),
                        FechaRegistro = obra.FechaRegistro,
                        ObraID        = obra.ObraID,
                        Status        = false,
                        PiezaPadreID  = null, // null = Principal o Maestra
                        TipoPiezaID   = tipoPieza.TipoPiezaID,
                        SubFolio      = tipoPieza.Prefijo
                    };
                    dbx.Piezas.Add(pieza);


                    foreach (var att in listaAttRegistro)
                    {
                        var tipoAtt = att.TipoAtributo;

                        if (tipoAtt.EsGenerico)
                        {
                            if (tipoAtt.EsLista)
                            {
                                /*
                                 * GENERICO LISTA
                                 * Fondo - Fondo_CEHM - Fondo
                                 * Colección - Coleccion_Clave - Nombredelfondo
                                 * Legajo - Legajo_CEHM - Legajo
                                 * Fecha de ejecución - FechaEjecucion_Clave - Fecha de ejecucion
                                 */
                                var    addOK     = true;
                                string valorText = "";
                                switch (tipoAtt.Temp)
                                {
                                case "Fondo_CEHM":
                                    addOK     = row.Fondo == null || row.Fondo == "" ? false : true;
                                    valorText = addOK ? row.Fondo : "";
                                    break;

                                case "Coleccion_Clave":
                                    addOK     = row.Nombredelfondo == null || row.Nombredelfondo == "" ? false : true;
                                    valorText = addOK ? row.Nombredelfondo : "";
                                    break;

                                case "Legajo_CEHM":
                                    addOK     = row.Legajo == null || row.Legajo == "" ? false : true;
                                    valorText = addOK ? row.Legajo : "";
                                    break;

                                case "FechaEjecucion_Clave":
                                    addOK     = row.LugaryFecha == null || row.LugaryFecha == "" ? false : true;
                                    valorText = addOK ? row.LugaryFecha : "";
                                    break;

                                default:
                                    addOK = false;
                                    break;
                                }


                                if (addOK)
                                {
                                    var listaValor = dbx.ListaValores.SingleOrDefault(a => a.TipoAtributoID == tipoAtt.TipoAtributoID && a.Valor == valorText);

                                    if (listaValor == null)
                                    {
                                        listaValor = new ListaValor()
                                        {
                                            ListaValorID   = Guid.NewGuid(),
                                            Status         = true,
                                            TipoAtributoID = tipoAtt.TipoAtributoID,
                                            Valor          = valorText
                                        };
                                        dbx.ListaValores.Add(listaValor);
                                        dbx.SaveChanges();
                                    }

                                    listaAdd_AttGen.Add(new AtributoPieza()
                                    {
                                        AtributoPiezaID = Guid.NewGuid(),
                                        AtributoID      = att.AtributoID,
                                        PiezaID         = pieza.PiezaID,
                                        Status          = true,
                                        ListaValorID    = listaValor.ListaValorID
                                    });
                                }
                            }
                            else
                            {
                                if (tipoAtt.EsMultipleValor)
                                {
                                    /*
                                     * GENERICO TEXTO MULTIPLE
                                     * Descripción - descripcion
                                     *
                                     *
                                     * Se forma con : Asunto1, Asunto2, Tema
                                     *
                                     */

                                    var    addOK     = true;
                                    string valorText = "";

                                    switch (tipoAtt.Temp)
                                    {
                                    case "descripcion":
                                        // Tema
                                        addOK     = true;
                                        valorText = "";
                                        addOK     = row.Tema == null || row.Tema == "" ? false : true;

                                        valorText = addOK ? row.Tema : "";

                                        if (addOK)
                                        {
                                            listaAdd_AttGen.Add(new AtributoPieza()
                                            {
                                                AtributoPiezaID = Guid.NewGuid(),
                                                AtributoID      = att.AtributoID,
                                                PiezaID         = pieza.PiezaID,
                                                Status          = true,
                                                Valor           = valorText
                                            });
                                        }

                                        // Asunto1
                                        addOK     = true;
                                        valorText = "";
                                        addOK     = row.Asunto1 == null || row.Asunto1 == "" ? false : true;

                                        valorText = addOK ? row.Asunto1 : "";
                                        if (addOK)
                                        {
                                            listaAdd_AttGen.Add(new AtributoPieza()
                                            {
                                                AtributoPiezaID = Guid.NewGuid(),
                                                AtributoID      = att.AtributoID,
                                                PiezaID         = pieza.PiezaID,
                                                Status          = true,
                                                Valor           = valorText
                                            });
                                        }


                                        // Asunto2
                                        addOK     = true;
                                        valorText = "";
                                        addOK     = row.Asunto2 == null || row.Asunto2 == "" ? false : true;

                                        valorText = addOK ? row.Asunto2 : "";
                                        if (addOK)
                                        {
                                            listaAdd_AttGen.Add(new AtributoPieza()
                                            {
                                                AtributoPiezaID = Guid.NewGuid(),
                                                AtributoID      = att.AtributoID,
                                                PiezaID         = pieza.PiezaID,
                                                Status          = true,
                                                Valor           = valorText
                                            });
                                        }

                                        break;

                                    default:
                                        addOK = false;
                                        break;
                                    }
                                }
                                else
                                {
                                    /*
                                     * GENERICOS TEXTO
                                     * No ficha CEHM            - NoFicha_CEHM
                                     * Clasificacion CEHM       - Clasificacion_CEHM
                                     * No de caja o carpeta     - NoCajaOCarpeta_Cehm
                                     * No de documento o fojas  - NoDocFojas_CEHM
                                     * Título descriptivo       - titulo
                                     * Enlace ficha             - UrlFicha_CEHM
                                     * No de imagenes           - NoImagen_CEHM
                                     * Enlace Imagenes          - URLImagen_CEHM
                                     */

                                    var    addOK     = true;
                                    string valorText = "";

                                    switch (tipoAtt.Temp)
                                    {
                                    case "NoFicha_CEHM":
                                        addOK     = row.FICHA_NO == 0 ? false : true;
                                        valorText = addOK ? row.FICHA_NO.ToString() : "0";
                                        break;

                                    case "Clasificacion_CEHM":
                                        addOK     = row.Clasificacion == null || row.Clasificacion == "" ? false : true;
                                        valorText = addOK ? row.Clasificacion : "";
                                        break;

                                    case "NoCajaOCarpeta_Cehm":
                                        // se forma con:  caja y carpeta
                                        // queda: Caja: 1 / Carpeta: 1
                                        // queda: Caja: 1
                                        // queda: Carpeta : 1
                                        var cajaOk = false;
                                        addOK      = row.Caja == null || row.Caja == "" ? false : true;
                                        valorText += addOK? "" + row.Caja : "";
                                        cajaOk     = addOK;
                                        addOK      = row.Carpeta == null || row.Carpeta == "" ? false : true;
                                        valorText += cajaOk && addOK? " / " : "";
                                        valorText += addOK ? "" + row.Carpeta : "";
                                        addOK      = addOK || cajaOk ? true : false;
                                        break;

                                    case "NoDocFojas_CEHM":
                                        // se forma con Fojas, Documento
                                        var fojaOk = false;
                                        addOK      = row.Fojas == null || row.Fojas == "" ? false : true;
                                        valorText += addOK? "" + row.Fojas : "";
                                        fojaOk     = addOK;
                                        addOK      = row.Documento == null || row.Documento == "" ? false : true;
                                        valorText += fojaOk && addOK? " / " : "";
                                        valorText += addOK ? "" + row.Documento : "";
                                        addOK      = addOK || fojaOk ? true : false;
                                        break;

                                    case "titulo":
                                        // Tipodedocumento, Dirigidoa

                                        var tipoDocOk = false;
                                        addOK      = row.Tipodedocumento == null || row.Tipodedocumento == "" ? false : true;
                                        valorText += addOK? row.Tipodedocumento : "";
                                        tipoDocOk  = addOK;
                                        addOK      = row.Dirigidoa == null || row.Dirigidoa == "" ? false : true;
                                        valorText += tipoDocOk && addOK ? " / " : "";
                                        valorText += addOK ? row.Dirigidoa : "";
                                        addOK      = addOK || tipoDocOk ? true : false;
                                        break;

                                    case "UrlFicha_CEHM":
                                        addOK     = row.URLFicha == null || row.URLFicha == "" ? false : true;
                                        valorText = addOK ? row.URLFicha : "";
                                        break;

                                    case "NoImagen_CEHM":
                                        addOK     = row.NoImag == 0 ? false : true;
                                        valorText = addOK ? row.NoImag.ToString() : "0";
                                        addOK     = true;
                                        break;

                                    case "URLImagen_CEHM":
                                        addOK     = row.URLImagen == null || row.URLImagen == "" ? false : true;
                                        valorText = addOK ? row.URLImagen : "";
                                        break;

                                    default:
                                        addOK = false;
                                        break;
                                    }

                                    if (addOK)
                                    {
                                        listaAdd_AttGen.Add(new AtributoPieza()
                                        {
                                            AtributoPiezaID = Guid.NewGuid(),
                                            AtributoID      = att.AtributoID,
                                            PiezaID         = pieza.PiezaID,
                                            Status          = true,
                                            Valor           = valorText
                                        });
                                    }
                                }
                            }
                        }
                        else
                        {
                            /*
                             * AUTOR LISTA MULTIPLE
                             * Firmado por
                             */


                            var    addOK     = true;
                            string valorText = "";

                            addOK     = row.Firmadopor == null || row.Firmadopor == "" ? false : true;
                            valorText = addOK ? row.Firmadopor : "";


                            if (addOK)
                            {
                                var autor = dbx.Autores.SingleOrDefault(a => a.Nombre == valorText);

                                if (autor == null)
                                {
                                    autor = new Autor()
                                    {
                                        AutorID = Guid.NewGuid(),
                                        Status  = true,
                                        Nombre  = valorText
                                    };
                                    dbx.Autores.Add(autor);
                                    dbx.SaveChanges();
                                }


                                listaAdd_AttAutor.Add(new AutorPieza()
                                {
                                    AutorID     = autor.AutorID,
                                    esPrincipal = true,
                                    PiezaID     = pieza.PiezaID,
                                    Status      = true,
                                    Prefijo     = "Principal"
                                });
                            }
                        }
                    }



                    numeroRow++;
                }

                //guardar los atributos
                dbx.AtributoPiezas.AddRange(listaAdd_AttGen);
                dbx.AutorPiezas.AddRange(listaAdd_AttAutor);
                dbx.SaveChanges();

                dbx.Dispose();
                dbx = new RecordFCSContext();
                dbx.Configuration.AutoDetectChangesEnabled = false;
            }



            return(View());
        }
        public Oferta ObtenerPorId(int idOferta)
        {
            Oferta oferta = null;

            //18FEB: Se obtiene las carreras de UTP y se quitan las ya seleccionadas.
            LNGeneral         lnGeneral        = new LNGeneral();
            List <ListaValor> listaCarrerasUTP = lnGeneral.ObtenerListaValor(Constantes.IDLISTA_DE_CARRERA).Where(m => m.IdListaValorPadre == "TEUNIV").ToList(); //Se obtienen todas las carreras


            DataSet dsResultado = adOferta.ObtenerPorId(idOferta);

            //Tabla Index 0: Datos de la oferta.
            if (dsResultado.Tables[0].Rows.Count > 0)
            {
                oferta = new Oferta();

                oferta.IdOferta      = Convert.ToInt32(dsResultado.Tables[0].Rows[0]["IdOferta"]);
                oferta.IdEmpresa     = Convert.ToInt32(dsResultado.Tables[0].Rows[0]["IdEmpresa"]);
                oferta.CargoOfrecido = Convert.ToString(dsResultado.Tables[0].Rows[0]["CargoOfrecido"]);
                oferta.Funciones     = Convert.ToString(dsResultado.Tables[0].Rows[0]["Funciones"]);
                oferta.Competencias  = Convert.ToString(dsResultado.Tables[0].Rows[0]["Competencias"]);

                oferta.TipoTrabajoIdListaValor  = Convert.ToString(dsResultado.Tables[0].Rows[0]["TipoTrabajo"]);
                oferta.TipoTrabajo.Valor        = Convert.ToString(dsResultado.Tables[0].Rows[0]["TipoTrabajoDescripcion"]);
                oferta.TipoCargoIdListaValor    = Convert.ToString(dsResultado.Tables[0].Rows[0]["TipoCargo"]);
                oferta.TipoCargo.Valor          = Convert.ToString(dsResultado.Tables[0].Rows[0]["TipoCargoDescripcion"]);
                oferta.TipoContratoIdListaValor = Convert.ToString(dsResultado.Tables[0].Rows[0]["TipoContrato"]);
                oferta.TipoContrato.Valor       = Convert.ToString(dsResultado.Tables[0].Rows[0]["TipoContratoDescripcion"]);


                oferta.RemuneracionOfrecida = Convert.ToDecimal(dsResultado.Tables[0].Rows[0]["RemuneracionOfrecida"]);
                oferta.Horario     = Convert.ToString(dsResultado.Tables[0].Rows[0]["Horario"]);
                oferta.AreaEmpresa = Convert.ToString(dsResultado.Tables[0].Rows[0]["AreaEmpresa"]);

                if (dsResultado.Tables[0].Rows[0]["NumeroVacantes"] == System.DBNull.Value)
                {
                    oferta.NumeroVacantes = null;
                }
                else
                {
                    oferta.NumeroVacantes = Convert.ToInt32(dsResultado.Tables[0].Rows[0]["NumeroVacantes"]);
                }

                oferta.IdEmpresaLocacion         = Convert.ToInt32(dsResultado.Tables[0].Rows[0]["IdEmpresaLocacion"]);
                oferta.RecibeCorreosIdListaValor = Convert.ToString(dsResultado.Tables[0].Rows[0]["RecibeCorreos"]);
                oferta.FechaFinRecepcionCV       = Convert.ToDateTime(dsResultado.Tables[0].Rows[0]["FechaFinRecepcionCV"]);
                oferta.AreaEmpresa = Convert.ToString(dsResultado.Tables[0].Rows[0]["AreaEmpresa"]);

                if (dsResultado.Tables[0].Rows[0]["DuracionContrato"] == System.DBNull.Value)
                {
                    oferta.DuracionContrato = null;
                }
                else
                {
                    oferta.DuracionContrato = Convert.ToInt32(dsResultado.Tables[0].Rows[0]["DuracionContrato"]);
                }

                oferta.Empresa.NombreComercial = Convert.ToString(dsResultado.Tables[0].Rows[0]["EmpresaNombreComercial"]);
                oferta.NombreLocacion          = Convert.ToString(dsResultado.Tables[0].Rows[0]["NombreLocacion"]);

                oferta.CreadoPor         = Convert.ToString(dsResultado.Tables[0].Rows[0]["CreadoPor"]);
                oferta.ModificadoPor     = Convert.ToString(dsResultado.Tables[0].Rows[0]["ModificadoPor"]);
                oferta.FechaCreacion     = Convert.ToDateTime(dsResultado.Tables[0].Rows[0]["FechaCreacion"]);
                oferta.FechaModificacion = Convert.ToDateTime(dsResultado.Tables[0].Rows[0]["FechaModificacion"]);

                oferta.EstadoOferta = Convert.ToString(dsResultado.Tables[0].Rows[0]["EstadoOferta"]);
                oferta.UsuarioPropietarioEmpresa = Convert.ToString(dsResultado.Tables[0].Rows[0]["UsuarioPropietarioEmpresa"]);
                oferta.FechaPublicacion          = Convert.ToDateTime(dsResultado.Tables[0].Rows[0]["FechaPublicacion"]);

                oferta.CicloMinimoCarreraUTP          = Convert.ToInt32(dsResultado.Tables[0].Rows[0]["CicloMinimoCarreraUTP"]);
                oferta.EstadoCarreraUTP               = Convert.ToString(dsResultado.Tables[0].Rows[0]["EstadoCarreraUTP"]);
                oferta.ExperienciaGeneral             = Convert.ToInt32(dsResultado.Tables[0].Rows[0]["MesesExperienciaTotal"]);
                oferta.ExperienciaPosicionesSimilares = Convert.ToInt32(dsResultado.Tables[0].Rows[0]["MesesExperienciaTipoTrabajo"]);

                //05MAR15: Para las nuevas ofertas este campo siempre está con data. Se agrega la validación para compatibilidad con ofertas anteriores.
                oferta.FechaFinProceso = Convert.ToDateTime(dsResultado.Tables[0].Rows[0]["FechaFinProceso"] == System.DBNull.Value ? new DateTime(1, 1, 1900) : dsResultado.Tables[0].Rows[0]["FechaFinProceso"]);
            }

            //Tabla Index 1: Lista de estudios.
            //Se instancia las listas:
            oferta.ListaEstudios         = new List <OfertaEstudio>();
            oferta.CarrerasSeleccionadas = new List <OfertaEstudio>();
            foreach (DataRow filaEstudio in dsResultado.Tables[1].Rows)
            {
                OfertaEstudio estudio = new OfertaEstudio();
                estudio.IdOfertaEstudio            = Convert.ToInt32(filaEstudio["IdOfertaEstudio"] == System.DBNull.Value ? null : filaEstudio["IdOfertaEstudio"]);
                estudio.IdOferta                   = Convert.ToInt32(filaEstudio["IdOfertaEstudio"] == System.DBNull.Value ? null : filaEstudio["IdOfertaEstudio"]);
                estudio.CicloEstudio               = Convert.ToInt32(filaEstudio["CicloEstudio"] == System.DBNull.Value ? null : filaEstudio["CicloEstudio"]);
                estudio.Estudio                    = Convert.ToString(filaEstudio["Estudio"] == System.DBNull.Value ? null : filaEstudio["Estudio"]);
                estudio.TipoDeEstudio.IdListaValor = Convert.ToString(filaEstudio["TipoDeEstudio"] == System.DBNull.Value ? null : filaEstudio["TipoDeEstudio"]);
                estudio.TipoDeEstudioIdListaValor  = Convert.ToString(filaEstudio["TipoDeEstudio"] == System.DBNull.Value ? null : filaEstudio["TipoDeEstudio"]);
                estudio.TipoDeEstudio.Valor        = Convert.ToString(filaEstudio["TipoDeEstudioDescripcion"]);
                estudio.EstadoDelEstudio.Valor     = Convert.ToString(filaEstudio["EstadoDelEstudioDescripcion"]);
                estudio.EstadoOfertaEstudio.Valor  = Convert.ToString(filaEstudio["EstadoOfertaEstudioDescripcion"]);
                estudio.CreadoPor                  = Convert.ToString(filaEstudio["CreadoPor"]);
                estudio.ModificadoPor              = Convert.ToString(filaEstudio["ModificadoPor"]);
                estudio.FechaCreacion              = Convert.ToDateTime(filaEstudio["FechaCreacion"]);
                estudio.FechaModificacion          = Convert.ToDateTime(filaEstudio["FechaModificacion"]);

                #region Se separan las carrearas universitarias UTP.
                if (estudio.TipoDeEstudio.IdListaValor == "TEUNIV") //Tipo de Estudio Universitario de UTP.
                {
                    var carreraEncontrada = listaCarrerasUTP.Where(m => m.Valor == estudio.Estudio).FirstOrDefault();

                    if (carreraEncontrada != null)
                    {
                        estudio.CodigoCarrera = carreraEncontrada.IdListaValor; //Se guarda el código de la carrera.
                        oferta.CarrerasSeleccionadas.Add(estudio);
                    }
                }
                else //Otros estudios.
                {
                    oferta.ListaEstudios.Add(estudio);
                }
                #endregion
            }

            //Tabla Index 2: Lista de experiencia por sector
            oferta.ListaSectores = new List <OfertaSectorEmpresarial>();
            foreach (DataRow filaSector in dsResultado.Tables[2].Rows)
            {
                OfertaSectorEmpresarial sector = new OfertaSectorEmpresarial();
                sector.IdOfertaSectorEmpresarial = Convert.ToInt32(filaSector["IdOfertaSectorEmpresarial"]);
                sector.IdOferta = Convert.ToInt32(filaSector["IdOferta"]);
                sector.SectorEmpresarial.Valor             = Convert.ToString(filaSector["SectorEmpresarialDescripcion"]);
                sector.AniosTrabajados                     = Convert.ToInt32(filaSector["AniosTrabajados"] == System.DBNull.Value ? null : filaSector["AniosTrabajados"]);
                sector.ExperienciaExcluyente               = Convert.ToBoolean(filaSector["ExperienciaExcluyente"]);
                sector.EstadoOfertaSectorEmpresarial.Valor = Convert.ToString(filaSector["EstadoOfertaSectorEmpresarialDescripcion"]);
                sector.CreadoPor         = Convert.ToString(filaSector["CreadoPor"]);
                sector.ModificadoPor     = Convert.ToString(filaSector["ModificadoPor"]);
                sector.FechaCreacion     = Convert.ToDateTime(filaSector["FechaCreacion"]);
                sector.FechaModificacion = Convert.ToDateTime(filaSector["FechaModificacion"]);

                oferta.ListaSectores.Add(sector);
            }

            //Tabla Index 3: Lista de información adicional
            oferta.ListaInformacionAdicional = new List <OfertaInformacionAdicional>();
            foreach (DataRow filaInfoAdicional in dsResultado.Tables[3].Rows)
            {
                OfertaInformacionAdicional infoAdicional = new OfertaInformacionAdicional();
                infoAdicional.IdOfertaInformacionAdicional = Convert.ToInt32(filaInfoAdicional["IdOfertaInformacionAdicional"]);
                infoAdicional.IdOferta = Convert.ToInt32(filaInfoAdicional["IdOferta"]);
                infoAdicional.TipoConocimiento.Valor  = Convert.ToString(filaInfoAdicional["TipoConocimientoDescripcion"]);
                infoAdicional.Conocimiento            = Convert.ToString(filaInfoAdicional["Conocimiento"]);
                infoAdicional.NivelConocimiento.Valor = Convert.ToString(filaInfoAdicional["NivelConocimientoDescripcion"]);
                infoAdicional.AniosExperiencia        = Convert.ToInt32(filaInfoAdicional["AniosExperiencia"] == System.DBNull.Value ? null : filaInfoAdicional["AniosExperiencia"]);
                infoAdicional.EstadoOfertaInformacionAdicional.Valor = Convert.ToString(filaInfoAdicional["EstadoOfertaInformacionAdicionalDescripcion"]);
                infoAdicional.CreadoPor         = Convert.ToString(filaInfoAdicional["CreadoPor"]);
                infoAdicional.ModificadoPor     = Convert.ToString(filaInfoAdicional["ModificadoPor"]);
                infoAdicional.FechaCreacion     = Convert.ToDateTime(filaInfoAdicional["FechaCreacion"]);
                infoAdicional.FechaModificacion = Convert.ToDateTime(filaInfoAdicional["FechaModificacion"]);

                oferta.ListaInformacionAdicional.Add(infoAdicional);
            }


            //Tabla Index 4: Lista de Postulantes
            oferta.Postulantes = new List <OfertaPostulante>();
            foreach (DataRow filaPostulante in dsResultado.Tables[4].Rows)
            {
                OfertaPostulante postulante = new OfertaPostulante();
                postulante.Alumno.IdAlumno   = Convert.ToInt32(filaPostulante["IdAlumno"]);
                postulante.Alumno.Nombres    = Convert.ToString(filaPostulante["AlumnoNombres"]);
                postulante.Alumno.Apellidos  = Convert.ToString(filaPostulante["AlumnoApellidos"]);
                postulante.FechaPostulacion  = Convert.ToDateTime(filaPostulante["FechaPostulacion"]);
                postulante.FaseOferta.Valor  = Convert.ToString(filaPostulante["FaseOferta"]);
                postulante.NombreCV          = Convert.ToString(filaPostulante["NombreCV"]);
                postulante.NivelDeMatch      = Convert.ToInt32(filaPostulante["NivelDeMatch"]);
                postulante.CreadoPor         = Convert.ToString(filaPostulante["CreadoPor"]);
                postulante.ModificadoPor     = Convert.ToString(filaPostulante["ModificadoPor"]);
                postulante.FechaCreacion     = Convert.ToDateTime(filaPostulante["FechaCreacion"]);
                postulante.FechaModificacion = Convert.ToDateTime(filaPostulante["FechaModificacion"]);

                oferta.Postulantes.Add(postulante);
            }

            //Fases de la oferta
            oferta.OfertaFases = Obtener_OfertaFase(idOferta);


            //Se instancia la lista:
            oferta.CarrerasDisponibles = new List <ListaValor>(); //Esta lista va al lado izquierdo
            //Se recorren las carreras.
            foreach (var carreraUTP in listaCarrerasUTP)
            {
                //Si la carreraUTP ya está seleccionada entonces NO se agrega. Si la búsqueda es null => no está, por lo tanto, sí se agrega.
                if (oferta.CarrerasSeleccionadas.Where(m => m.Estudio == carreraUTP.Valor).FirstOrDefault() == null)
                {
                    ListaValor carreraDisponible = copiarListaValor(carreraUTP);
                    oferta.CarrerasDisponibles.Add(carreraDisponible);
                }
            }

            return(oferta);
        }