예제 #1
0
    public static String Importar(int IdCampeonato,
                                  StreamReader sr)
    {
        SqlTransaction t = null;

        try
        {
            //recuperar el objeto para consultas a ala base de datos
            BaseDatos bd = (BaseDatos)HttpContext.Current.Session["bd"];

            //Iniciar la transacción
            t = bd.Conexion.BeginTransaction();

            //Leer la primera linea
            String linea = sr.ReadLine();
            //Ignorar encabezados
            if (linea.ToLower().Contains("grupo"))
            {
                linea = sr.ReadLine();
            }

            //Variable para detectar cambio de grupo
            String anteriorGrupo = "";
            int    IdGrupo       = -1;
            while (linea != null)
            {
                String[] datos = linea.Split(';');
                if (datos.Length == 2)
                {
                    //Verificar cambio de Grupo
                    if (!anteriorGrupo.Equals(datos[0]))
                    {
                        //Importando grupos
                        IdGrupo = Grupo.ObtenerId(IdCampeonato, datos[0], t);
                        //Si no existe el grupo, agregarlo
                        if (IdGrupo == -1)
                        {
                            Grupo.Guardar(-1, IdCampeonato, datos[0], t);
                            IdGrupo = Grupo.ObtenerId(IdCampeonato, datos[0], t);
                        }
                        anteriorGrupo = datos[0];
                    }

                    //Importando Paises
                    int IdPais = Pais.ObtenerId(datos[1], t);
                    //Si no existe el Pais, agregarlo
                    if (IdPais == -1)
                    {
                        Pais.Guardar(-1, datos[1], "Sin Entidad", t);
                        IdPais = Pais.ObtenerId(datos[1], t);
                    }

                    //Importar GrupoPais
                    //Verificar si ya esta registrado el pais en el grupo
                    if (!Grupo.VerificarGrupoPais(IdGrupo, IdPais, t))
                    {
                        Grupo.AgregarGrupoPais(IdGrupo, IdPais, t);
                    }
                }
                else
                {
                    //Importando encuentros
                }

                //Leer siguiente linea
                linea = sr.ReadLine();
            }


            //Finalizar transacción con éxito
            t.Commit();

            return("");
        }
        catch (Exception ex)
        {
            //Devolver los cambios de la transacción
            if (t != null)
            {
                t.Rollback();
            }
            return("Error importando Campeonato:\n" + ex.Message);
        }
    }