Пример #1
0
        /// <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();
                }
            }
        }