/// <summary> /// Obtiene las fases de una edición por Id. Si no tiene devuelve lista vacia /// autor: Florencia Rojas /// </summary> public List <Fase> obtenerFases(int idEdicion) { SqlConnection con = new SqlConnection(cadenaDeConexion); SqlCommand cmd = new SqlCommand(); SqlDataReader dr; List <Fase> fases = new List <Fase>(); DAOGrupo daoGrupo = new DAOGrupo(); DAOFecha daoFecha = new DAOFecha(); DAOPartido daoPartido = new DAOPartido(); try { if (con.State == ConnectionState.Closed) { con.Open(); } cmd.Connection = con; string sql = @"SELECT * FROM Fases WHERE idEdicion = @idEdicion"; cmd.Parameters.Clear(); cmd.Parameters.AddWithValue("@idEdicion", idEdicion); cmd.CommandText = sql; dr = cmd.ExecuteReader(); DAOEstado daoEstado = new DAOEstado(); while (dr.Read()) { Fase fase = new Fase() { idFase = int.Parse(dr["idFase"].ToString()), idEdicion = idEdicion, estado = daoEstado.obtenerEstadoPorId(int.Parse(dr["idEstado"].ToString())), tipoFixture = new TipoFixture(dr["tipoFixture"].ToString()), equipos = new List <Equipo>(), cantidadDeEquipos = (dr["cantidadEquipos"] != DBNull.Value) ? int.Parse(dr["cantidadEquipos"].ToString()) : 0, cantidadDeGrupos = (dr["cantidadGrupos"] != DBNull.Value) ? int.Parse(dr["cantidadGrupos"].ToString()) : 0, esGenerica = (dr["cantidadEquipos"] != DBNull.Value) // si el valor del campo cantidadEquipos es Null, entonecs se trata de una fase generica. }; fases.Add(fase); } if (dr != null) { dr.Close(); } foreach (Fase fase in fases) { if (!fase.esGenerica) { daoGrupo.obtenerGrupos(fase, con, true); daoFecha.obtenerFechas(fase, con); daoPartido.obtenerPartidos(fase, con); foreach (Grupo grupo in fase.grupos) { fase.equipos.AddRange(grupo.equipos); } } } return(fases); } catch (Exception ex) { throw new Exception("Error al intentar recuperar las fases de una Edición: " + ex.Message); } finally { if (con != null && con.State == ConnectionState.Open) { con.Close(); } } }