Exemplo n.º 1
0
        /// <summary>
        /// Charge les données envoyées dans le constructeur dans les tables
        /// Ne sauvegarde pas les modifications
        /// </summary>
        public void LoadData()
        {
            _styles.ForEach(style =>
            {
                style.LienStyle = _lienStyles.Where(ls => ls.IdStyle == style.IdStyle).ToList();
            });

            _pays.ForEach(pays => pays.Artistes = _artistes.Where(artiste => artiste.IdPays == pays.IdPays).ToList());

            _artistes.ForEach(artist =>
            {
                artist.Titres = _titres.Where(t => t.Artiste.Nom == artist.Nom).ToList();
                artist.Pays   = _pays.FirstOrDefault(pays => pays.IdPays == artist.IdPays);
            });

            _titres.ForEach(titre => titre.Commentaires    = _commentaires.Where(x => x.IdTitre == titre.IdTitre).ToList());
            _commentaires.ForEach(comment => comment.Titre = (_titres.FirstOrDefault(x => x.IdTitre == comment.IdTitre)));
            _styles.ForEach(t => _dbContext.Styles.Add(t));

            _titres.ForEach(t =>
            {
                _dbContext.Titres.Add(t);
            });



            _artistes.ForEach(t => _dbContext.Artistes.Add(t));
            _commentaires.ForEach(t => _dbContext.Commentaires.Add(t));

            _lienStyles.ForEach(ls => _dbContext.Add(ls));
        }
Exemplo n.º 2
0
        /// <summary>
        /// Feed the database with spotify api data
        /// </summary>
        /// <param name="context">context of datas</param>
        public static void Initialize(WebzineDbContext context)
        {
            string client_id     = "d9e99f5831b940a5b3b59efd7f119e69"; // Your client id
            string client_secret = "76cd2a308f10479195200861cf25c5e4"; // Your secret
            string accesToken    = GetAccessToken(client_id, client_secret);

            List <string> artistsIds = new List <string>()
            {
                "3NH8t45zOTqzlZgBvZRjvB", "7p0odCZxOVz684NjXt1dEf", "2RJBv9wXbW6m539q9NOfW1", "4OV6uYSnHxSYkjDYuBVBUz", "3QVolfxko2UyCOtexhVTli", "0GOx72r5AAEKRGQFn3xqXK", "7IlRNXHjoOCgEAWN5qYksg", "4sbXXFzEWJY2zsZjelerjX", "5mmEMfYChd6MImBagU7zCs", "3YwqjMyrRfuixi2pbgTGCE"
            };

            Style spotifyStyle = new Style()
            {
                Libelle      = "spotify provided",
                TitresStyles = new List <TitreStyle>()
            };

            context.Add <Style>(spotifyStyle);
            context.SaveChanges();

            foreach (string artistId in artistsIds)
            {
                string uriArtists  = $"https://api.spotify.com/v1/artists/{artistId}/top-tracks?country=FR";
                var    artistsTxt  = Get(uriArtists, accesToken);
                var    artistsJson = JsonConvert.DeserializeObject <dynamic>(artistsTxt);

                Artiste artist = new Artiste()
                {
                    Nom        = artistsJson["tracks"][0]["artists"][0]["name"],
                    Biographie = "Vers acteurs aux clapotements criards cotons les ces ou plus vrai la et et jour comme l'horizon l'europe ces par échouages fini pareille et l'ouragan cotons marées un des les clabaudeurs voiliers aux ravie d'ineffables sanglot fleurs taché des aux million vers poissons impassibles a et les cloués des et colombes violettes et ivre mes florides un sur jaune insoucieux amer de voir circulation tendus pénétra tout anglais flottaison bords délirants appelle nuit aux qui quille au chanteurs qu'un soir restais flamands pourrit île bruns noire immobilités cru flot victimes noyés de embaumé l'assaut glaciers la courants des de restais",
                    Titres     = new List <Titre>()
                };

                context.Add <Artiste>(artist);
                context.SaveChanges();
                Artiste newArtiste = context.Artistes.FirstOrDefault(a => a.Nom == artist.Nom);

                foreach (var artistTracks in artistsJson["tracks"])
                {
                    DateTime dateCreation = DateTime.Now;

                    if (artistTracks["album"]["release_date_precision"] == "day")
                    {
                        dateCreation = Convert.ToDateTime(artistTracks["album"]["release_date"]);
                    }
                    else if (artistTracks["album"]["release_date_precision"] == "month")
                    {
                        dateCreation = Convert.ToDateTime(artistTracks["album"]["release_date"] + "/01");
                    }
                    else if (artistTracks["album"]["release_date_precision"] == "year")
                    {
                        dateCreation = new DateTime(int.Parse(artistTracks["album"]["release_date"]), 1, 1);
                    }

                    Titre titre = new Titre()
                    {
                        //Artiste = artist,
                        Album        = artistTracks["album"]["name"],
                        Chronique    = "Des les épais aux porteur de volets florides et courais plein des figements sourd a délirants que cheveux nuits bruns flots poissons écroulement dans sillage t'exiles je frele froide roulis roulis ce en a geindre figements bleuités lorsqu'a ailé de ces montant mystiques rut je bouchon sur vogueur comme dormir ces sanglot d'horreurs les cieux froide sentant ciel est-ce lava leur hystériques gouffres yeux nuits je dans travers je ou pôles et que léviathan puis de tout dans sont - ou roulant bateau plus de descendais des et phosphores d'or choient gouffres éternel mois seves chair t'exiles de je poissons",
                        Commentaires = new List <Commentaire>(),
                        DateCreation = DateTime.Now,
                        DateSortie   = dateCreation,
                        Duree        = artistTracks["duration_ms"] / 1000,
                        IdArtiste    = artist.IdArtiste,
                        Libelle      = artistTracks["name"],
                        NbLectures   = 0,
                        NbLikes      = 0,
                        TitresStyles = new List <TitreStyle>(),
                        UrlEcoute    = artistTracks["preview_url"],
                        UrlJaquette  = artistTracks["album"]["images"][1]["url"]
                    };

                    context.Add <Titre>(titre);
                    context.SaveChanges();

                    TitreStyle titreStyle = new TitreStyle()
                    {
                        IdStyle = spotifyStyle.IdStyle,
                        IdTitre = titre.IdTitre,
                        //Style = spotifyStyle,
                        //Titre = titre
                    };

                    context.Add <TitreStyle>(titreStyle);
                    context.SaveChanges();
                }
            }
        }