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()); }
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(); }
protected override void OnModelCreating(ModelBuilder mb) { /* Mappings */ AlbumArtist.AddMappings(mb); ArtistSong.AddMappings(mb); }
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); } }
public void Update(ArtistSong newArtistSong) { throw new NotImplementedException(); }
public void Add(ArtistSong newArtistSong) { _context.Add(newArtistSong); _context.SaveChanges(); }