Exemple #1
0
        public IActionResult AddNewSong(SongModel model)
        {
            var newSong = new Song
            {
                Name            = model.Name,
                ReleaseDate     = DateTime.Now,
                LengthInSeconds = model.LengthInSeconds,
                Description     = model.Description,
                YoutubeVideoId  = model.YoutubeVideoId,
                AlbumId         = null,
                UserId          = 1,
                ImageId         = 1
            };

            var addedSong = _context.Song.Add(newSong);

            var newArtistSong = new ArtistSong()
            {
                SongId   = newSong.Id,
                ArtistId = Convert.ToInt32(model.ArtistId),
            };

            _context.ArtistSong.Add(newArtistSong);
            _context.SaveChanges();

            return(Ok());
        }
Exemple #2
0
    private static void InsertTestData(RajiNetDbContext db)
    {
        /* Series */

        var absoluteSoul = new Series {
            Name  = "Absolute Soul",
            Image = "/assets/img/series/absoluteduo.jpg",
        };
        var gochiUsa = new Series {
            Name  = "Gochuumon wa Usagi Desu Ka?",
            Image = "/assets/img/series/gochiusa.jpg",
        };
        var saeKano = new Series {
            Name  = "Saenai Heroine no Sodate Kata",
            Image = "/assets/img/series/saekano.jpg",
        };


        /* Artists */

        var iguchiYuka = new Artist {
            Name  = "Iguchi Yuka",
            Image = "/assets/images/artists/iguigu.jpg",
        };
        var asumiKana = new Artist {
            Name  = "AsumiKana",
            Image = "/assets/images/artists/asumin.jpg",
        };
        var konomiSuzuki = new Artist {
            Name  = "Konomi Suzuki",
            Image = "/assets/images/artists/konomi.jpg",
        };


        /* Albums */

        var hafaAdai = new Album {
            Name        = "Hafa Adai",
            Image       = "/assets/images/albums/hafaAdai.jpg",
            ReleaseDate = DateTime.Now,
            SingleType  = SingleType.Album,
        };
        var absoluteSoulAlbum = new Album {
            Name        = "Absolute Soul",
            Image       = "/assets/images/albums/absoluteSoul.jpg",
            ReleaseDate = DateTime.Now,
            SingleType  = SingleType.OpSingle,
        };


        /* Songs */

        var absoluteSoulSong = new Song {
            Name    = "Absolute Soul",
            FileUrl = "/assets/audio/absolutesoul.mp3",
            Album   = absoluteSoulAlbum,
        };
        var puengue = new Song {
            Name    = "Absolute Soul",
            FileUrl = "/assets/audio/absolutesoul.mp3",
            Album   = hafaAdai,
        };


        /* Album-Series joins */

        absoluteSoul.Albums.Add(absoluteSoulAlbum);


        /* Album-Song joins */

        absoluteSoulAlbum.Songs.Add(absoluteSoulSong);
        hafaAdai.Songs.Add(puengue);


        /* Album-Artist joins */

        var iguchiYukaHafaAdaiJoin = new AlbumArtist();

        iguchiYukaHafaAdaiJoin.Artist = iguchiYuka;
        iguchiYukaHafaAdaiJoin.Album  = hafaAdai;
        hafaAdai.AlbumArtist.Add(iguchiYukaHafaAdaiJoin);
        iguchiYuka.AlbumArtist.Add(iguchiYukaHafaAdaiJoin);

        var konomiSuzukiAbsoluteSoulJoin = new AlbumArtist();

        konomiSuzukiAbsoluteSoulJoin.Artist = konomiSuzuki;
        konomiSuzukiAbsoluteSoulJoin.Album  = absoluteSoulAlbum;
        konomiSuzuki.AlbumArtist.Add(konomiSuzukiAbsoluteSoulJoin);
        absoluteSoulAlbum.AlbumArtist.Add(konomiSuzukiAbsoluteSoulJoin);


        /* Artist-Song joins */

        var iguchiYukaPuengueJoin = new ArtistSong();

        iguchiYukaPuengueJoin.Artist = iguchiYuka;
        iguchiYukaPuengueJoin.Song   = puengue;
        puengue.ArtistSong.Add(iguchiYukaPuengueJoin);
        iguchiYuka.ArtistSong.Add(iguchiYukaPuengueJoin);

        var konomiSuzukiAbsoluteSoulSongJoin = new ArtistSong();

        konomiSuzukiAbsoluteSoulSongJoin.Artist = konomiSuzuki;
        konomiSuzukiAbsoluteSoulSongJoin.Song   = absoluteSoulSong;
        absoluteSoulSong.ArtistSong.Add(konomiSuzukiAbsoluteSoulSongJoin);
        konomiSuzuki.ArtistSong.Add(konomiSuzukiAbsoluteSoulSongJoin);


        /* Add all to db */

        var series = new List <Series>();

        series.Add(absoluteSoul);
        series.Add(gochiUsa);
        series.Add(saeKano);
        db.Series.AddRange(series);

        var artists = new List <Artist>();

        artists.Add(asumiKana);
        artists.Add(iguchiYuka);
        artists.Add(konomiSuzuki);
        db.Artists.AddRange(artists);

        var albums = new List <Album>();

        albums.Add(hafaAdai);
        albums.Add(absoluteSoulAlbum);
        db.Albums.AddRange(albums);

        var songs = new List <Song>();

        songs.Add(absoluteSoulSong);
        songs.Add(puengue);
        db.Songs.AddRange(songs);

        db.SaveChanges();
    }
Exemple #3
0
 protected override void OnModelCreating(ModelBuilder mb)
 {
     /* Mappings */
     AlbumArtist.AddMappings(mb);
     ArtistSong.AddMappings(mb);
 }
Exemple #4
0
        private static void AddSong(SongInfo song, mediadbContext dbContext)
        {
            //check to see if artists exit and add them if they do not
            //var artistsCNames = song.Artists.Select(a => new KeyValuePair<string, string>(MediaUtils.GetCanonicalName(a), a)).Distinct().ToDictionary(kvp => kvp.Key,;
            var artistsCNames = new Dictionary <string, string>();

            foreach (var artist in song.Artists)
            {
                string artistCName = MediaUtils.GetCanonicalName(artist);
                if (artistsCNames.ContainsKey(artistCName))
                {
                    continue;
                }
                artistsCNames.Add(artistCName, artist);
            }

            foreach (var kvp in artistsCNames)
            {
                string artistCName = kvp.Key;
                string artistName  = kvp.Value;

                if (string.IsNullOrEmpty(artistCName))
                {
                    continue;
                }

                if (dbContext.Artist.Where(a => a.Name == artistCName).Count() == 0)
                {
                    var artist = new Artist()
                    {
                        Name = artistCName, NiceName = artistName
                    };
                    dbContext.Artist.Add(artist);
                }
            }

            //check if album artist exists and add it if it does not
            string albumArtistCName = MediaUtils.GetCanonicalName(song.AlbumArtistName);

            if (!string.IsNullOrEmpty(albumArtistCName) && !artistsCNames.ContainsKey(albumArtistCName))
            {
                if (dbContext.Artist.Where(a => a.Name == albumArtistCName).Count() == 0)
                {
                    var artist = new Artist()
                    {
                        Name = albumArtistCName, NiceName = song.AlbumArtistName
                    };
                    dbContext.Artist.Add(artist);
                }
            }

            //check if album exists and add it if it does not
            string albumCName = MediaUtils.GetCanonicalName(song.AlbumName);

            if (!string.IsNullOrEmpty(albumCName) && !string.IsNullOrEmpty(albumArtistCName))
            {
                if (dbContext.Album.Where(a => a.Name == albumCName && a.ArtistName == albumArtistCName).Count() == 0)
                {
                    var album = new Album()
                    {
                        Name = albumCName, ArtistName = albumArtistCName, Title = song.AlbumName
                    };
                    dbContext.Album.Add(album);
                }
            }

            //genre should be a cname
            string genreCName = MediaUtils.GetCanonicalName(song.Genre);

            //create song object and add!
            var songObject = new Song()
            {
                Hash            = song.Hash,
                Title           = song.Title,
                Genre           = genreCName,
                Length          = song.Length,
                Set             = song.Set,
                Track           = song.Track,
                Path            = song.Path,
                AlbumName       = albumCName,
                AlbumArtistName = albumArtistCName
            };

            dbContext.Song.Add(songObject);

            //create artist-song link objects
            foreach (var artistCName in artistsCNames.Keys)
            {
                var artistsong = new ArtistSong()
                {
                    ArtistName = artistCName, SongHash = song.Hash
                };
                dbContext.ArtistSong.Add(artistsong);
            }
        }
Exemple #5
0
 public void Update(ArtistSong newArtistSong)
 {
     throw new NotImplementedException();
 }
Exemple #6
0
 public void Add(ArtistSong newArtistSong)
 {
     _context.Add(newArtistSong);
     _context.SaveChanges();
 }