Ejemplo n.º 1
0
        public List <List <Tag> > generarParejas()
        {
            List <List <Tag> > lstTagsHijos = new List <List <Tag> >();
            int     numParejasAFormar       = Canciones.Count / 2;
            Random  random = new Random();
            Double  numAleatorio;
            Cancion Pareja1 = new Cancion("0");
            Cancion Pareja2 = new Cancion("0");

            for (int i = 0; i <= numParejasAFormar; i++)
            {
                do
                {
                    numAleatorio = random.NextDouble() * 100;
                    foreach (Cancion can in Canciones)
                    {
                        if (numAleatorio >= can.numMin && numAleatorio < can.numMax)
                        {
                            Pareja1 = can;
                        }
                    }
                    numAleatorio = random.NextDouble() * 100;
                    foreach (Cancion can in Canciones)
                    {
                        if (numAleatorio >= can.numMin && numAleatorio < can.numMax)
                        {
                            Pareja2 = can;
                        }
                    }
                } while (Pareja1.Id == Pareja2.Id);

                Pareja pareja = new Pareja(Pareja1, Pareja2);
                lstTagsHijos.AddRange(pareja.cruzaTags());
            }
            return(lstTagsHijos);
        }
Ejemplo n.º 2
0
 public Pareja(Cancion pareja1, Cancion pareja2)
 {
     this.pareja1 = pareja1;
     this.pareja2 = pareja2;
 }
Ejemplo n.º 3
0
        public List <Cancion> getCanciones(int idCanc = -1, string idUsuario = "")
        {
            DataSet        ds  = new DataSet();
            Cancion        can = null;
            String         idCancion;
            String         nombre;
            String         artista;
            List <Cancion> lstCanciones = new List <Cancion>();
            List <Tag>     lstTags      = new List <Tag>();

            string strQuery     = "SELECT c.[idCancion], c.[nombreCancion], [artista] FROM [dbo].[Cancion] as c";
            string strSeparador = " WHERE ";

            if (idUsuario != "")
            {
                strQuery    += " join [dbo].[CancionesAsignadas] as ca on c.idCancion = ca.idCancion ";
                strQuery    += " WHERE ca.idUsuario = @idUsuario ";
                strSeparador = " and ";
            }
            if (idCanc > 0)
            {
                strQuery += strSeparador + " c.idCancion = @id ";
            }

            using (SqlCommand sqlCommand = new SqlCommand(strQuery, sqlConnection))
            {
                sqlCommand.Parameters.AddWithValue("@id", idCanc);
                sqlCommand.Parameters.AddWithValue("@idUsuario", idUsuario);
                using (SqlDataAdapter da = new SqlDataAdapter(sqlCommand))
                {
                    da.Fill(ds, "listaCancion");
                }
            }
            foreach (DataRow dr in ds.Tables[0].Rows)
            {
                DataSet ds2 = new DataSet();
                idCancion = dr["idCancion"].ToString();
                nombre    = dr["nombreCancion"].ToString();
                artista   = dr["artista"].ToString();

                strQuery = "SELECT t.* FROM tagsAsignados as ta INNER JOIN Tag as t on t.idTag = ta.idTag WHERE idCancion = @id;";
                using (SqlCommand sqlCommand = new SqlCommand(strQuery, sqlConnection))
                {
                    sqlCommand.Parameters.AddWithValue("@id", idCancion);
                    using (SqlDataAdapter da = new SqlDataAdapter(sqlCommand))
                    {
                        lstTags = new List <Tag>();
                        da.Fill(ds2, "listaCancionTags");
                        foreach (DataRow r in ds2.Tables[0].Rows)
                        {
                            Tag t = new Tag(int.Parse(r["idTag"].ToString()), r["nombre"].ToString(), int.Parse(r["aptitud"].ToString()));
                            lstTags.Add(t);
                        }
                    }
                }

                lstCanciones.Add(new Cancion(idCancion, nombre, artista, lstTags));
            }

            return(lstCanciones);
        }