public IEnumerable <Proyecto> FindAll() { Conexion unaCon = new Conexion(); SqlConnection cn = new Conexion().CrearConexion(); SqlCommand cmd = new SqlCommand(@"SELECT P.Id,P.Cedula,P.Titulo,P.Descripcion,P.Monto,P.Cuotas, P.NombreImagen,P.Estado,P.FechaPresentacion,P.Puntaje,P.TasaInteres,P.Tipo FROM Proyectos P;", cn); // JOIN LEFT mágico para poder traer la tabla completa try { if (unaCon.AbrirConexion(cn)) { SqlDataReader dr = cmd.ExecuteReader(); List <Proyecto> listaProyectos = new List <Proyecto>(); RepositorioUsuarios repoUsarios = new RepositorioUsuarios(); while (dr.Read()) { listaProyectos.Add(new Proyecto { id = (int)dr["Id"], // solicitante = repoUsarios.FindById((int)dr["Cedula"]), // findby id categoria titulo = (string)dr["Titulo"], descripcion = (string)dr["Descripcion"], monto = (decimal)dr["Monto"], cuotas = (int)dr["Cuotas"], rutaImagen = (string)dr["NombreImagen"], estado = (string)dr["Estado"], fechaPresentacion = (DateTime)dr["FechaPresentacion"], puntaje = (int)dr["Puntaje"], tasaInteres = (decimal)dr["TasaInteres"] }); } return(listaProyectos); } return(null); } catch (SqlException ex) { return(null); } catch (Exception ex) { return(null); } finally { unaCon.CerrarConexion(cn); } }
public Proyecto FindById(object idProyecto) { SqlConnection cn = new Conexion().CrearConexion(); SqlCommand cmdCli = new SqlCommand(@"SELECT P.Id,P.Cedula,P.Titulo,P.Descripcion,P.Monto,P.Cuotas, P.NombreImagen,P.Estado,P.FechaPresentacion,P.Puntaje,P.TasaInteres,P.Tipo,PE.Experiencia,C.CantIntegrantes FROM Proyectos P LEFT JOIN Personales PE ON P.Id = PE.Id LEFT JOIN Cooperativos C ON P.Id = C.Id WHERE P.Id=@idProyecto;", cn); cmdCli.Parameters.AddWithValue("@idProyecto", idProyecto); try { Proyecto u = new Proyecto(); if (new Conexion().AbrirConexion(cn)) { SqlDataReader dr = cmdCli.ExecuteReader(); if (dr.Read()) { if (dr["Tipo"].ToString() == "PERSONAL") { RepositorioUsuarios repoUser = new RepositorioUsuarios(); Personal p = new Personal(); p.id = (int)dr["Id"]; p.solicitante = (Solicitante)repoUser.FindById(dr["Cedula"]); p.titulo = (string)dr["Titulo"]; p.descripcion = (string)dr["Descripcion"]; p.monto = (decimal)dr["Monto"]; p.cuotas = (int)dr["Cuotas"]; p.rutaImagen = (string)dr["NombreImagen"]; p.estado = (string)dr["Estado"]; p.fechaPresentacion = (DateTime)dr["FechaPresentacion"]; p.puntaje = (int)dr["Puntaje"]; p.tasaInteres = (decimal)dr["TasaInteres"]; p.experiencia = (string)dr["Experiencia"]; return(p); } else if (dr["Tipo"].ToString() == "COOPERATIVO") { RepositorioUsuarios repoUser = new RepositorioUsuarios(); Cooperativo c = new Cooperativo(); c.id = (int)dr["Id"]; c.solicitante = (Solicitante)repoUser.FindById(dr["Cedula"]); c.titulo = (string)dr["Titulo"]; c.descripcion = (string)dr["Descripcion"]; c.monto = (decimal)dr["Monto"]; c.cuotas = (int)dr["Cuotas"]; c.rutaImagen = (string)dr["NombreImagen"]; c.estado = (string)dr["Estado"]; c.fechaPresentacion = (DateTime)dr["FechaPresentacion"]; c.puntaje = (int)dr["Puntaje"]; c.tasaInteres = (decimal)dr["TasaInteres"]; c.cantIntegrantes = (int)dr["CantIntegrantes"]; return(c); } } } return(u); } catch (SqlException ex) { return(null); } catch (Exception ex) { throw; } finally { new Conexion().CerrarConexion(cn); } }