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);
                }
            }
        }