Ejemplo n.º 1
0
        /// <summary>
        /// Registra una fase, con todos sus atributos en la base de datos
        /// </summary>
        private static void registrarUnaFase(SqlConnection con, SqlTransaction trans, SqlCommand cmd, Fase fase)
        {
            if (fase != null && fase.estado.idEstado != Estado.faseFINALIZADA)
            {
                string sql = @"INSERT INTO Fases (idFase, idEdicion, tipoFixture, idEstado, cantidadEquipos, cantidadGrupos)
                                        VALUES (@idFase, @idEdicion, @tipoFixture, @idEstado, @cantidadEquipos, @cantidadGrupos)";
                cmd.Parameters.Clear();
                cmd.Parameters.AddWithValue("@idFase", fase.idFase);
                cmd.Parameters.AddWithValue("@idEdicion", fase.idEdicion);
                cmd.Parameters.AddWithValue("@tipoFixture", fase.tipoFixture.idTipoFixture);
                cmd.Parameters.AddWithValue("@idEstado", fase.esGenerica ? Estado.faseREGISTRADA : Estado.faseDIAGRAMADA);
                if (fase.esGenerica)
                {
                    cmd.Parameters.AddWithValue("@cantidadEquipos", fase.equipos.Count);
                    cmd.Parameters.AddWithValue("@cantidadGrupos", fase.grupos.Count);
                }
                else
                {
                    cmd.Parameters.AddWithValue("@cantidadEquipos", DBNull.Value);
                    cmd.Parameters.AddWithValue("@cantidadGrupos", DBNull.Value);
                }
                cmd.CommandText = sql;
                cmd.ExecuteNonQuery();

                if (fase.grupos.Count != 0 && !fase.esGenerica)
                {
                    DAOGrupo daoGrupo = new DAOGrupo();
                    daoGrupo.registrarGrupos(fase, con, trans);

                    DAOFecha daoFecha = new DAOFecha();
                    daoFecha.registrarFechas(fase, con, trans);

                    DAOPartido daoPartido = new DAOPartido();
                    daoPartido.registrarPartidos(fase, con, trans);
                }
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Cierra la fase anterior a la actual, y actualiza todas las fases posteriores segun lo haya configurado el usuario.
        /// </summary>
        /// <param name="edicion">La edicion que contiene las fases a modificar</param>
        /// <param name="idFaseActual">El numero de fase que acaba de crear el usuario.</param>
        public void cerrarFaseYActualizarPosteriores(Edicion edicion, int idFaseActual)
        {
            SqlConnection  con   = new SqlConnection(cadenaDeConexion);
            SqlCommand     cmd   = new SqlCommand();
            SqlTransaction trans = null;

            try
            {
                if (con.State == ConnectionState.Closed)
                {
                    con.Open();
                }
                trans           = con.BeginTransaction();
                cmd.Connection  = con;
                cmd.Transaction = trans;
                DAOPartido daoPartido = new DAOPartido();
                DAOFecha   daoFecha   = new DAOFecha();
                cerrarFase(idFaseActual - 1, edicion.idEdicion, cmd);
                daoPartido.cambiarEstadosAPartidos(Estado.partidoCANCELADO, edicion.idEdicion, idFaseActual - 1, cmd);
                daoFecha.cambiarEstadosAFechas(Estado.fechaCOMPLETA, edicion.idEdicion, idFaseActual - 1, cmd);
                actualizarFasesPosteriores(edicion.fases, idFaseActual, cmd);
                trans.Commit();
            }
            catch (Exception ex)
            {
                cmd.Transaction.Rollback();
                throw new Exception("No se pudo cambiar el estado de la Fase: " + ex.Message);
            }
            finally
            {
                if (con != null && con.State == ConnectionState.Open)
                {
                    con.Close();
                }
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Obtiene las fases  de una edición por Id. Obteniendo solo los valores necesarios para mostrar la informacion básica de la fase y sus equipos.
        /// autor: Antonio Herrera
        /// </summary>
        public List <Fase> obtenerFasesReducidas(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();
                while (dr.Read())
                {
                    Fase fase = new Fase()
                    {
                        idFase    = int.Parse(dr["idFase"].ToString()),
                        idEdicion = idEdicion,
                        estado    = new Estado()
                        {
                            idEstado = 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 no 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, false);
                        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();
                }
            }
        }