public void TestMethod_AlbumEF() { var album = new AlbumEF(); album.ID = 42; album.Name = "Prodigy"; Assert.AreEqual(album.ID, 42); Assert.AreEqual(album.Name, "Prodigy"); }
public async Task SearchMusic(string path) { var context = new BlogDBContext(); var file = new FileInfo(path); TagFile tagLibFile = null; try { // Прочитаме музикалния файл. tagLibFile = TagFile.Create(path); } catch (Exception) { // Ако не можем да го прочетем отиваме на следващия. return; } using (tagLibFile) { BandEF band = null; Song song = null; AlbumEF album = null; var tag = tagLibFile.Tag; // Взимаме името на бандата. var bandName = tag.FirstAlbumArtist ?? tag.FirstPerformer ?? tag.FirstComposer ?? "Unknown"; // Ако tag.Title е null взимаме името на файла. if (tag.Title is null) { tag.Title = Path.GetFileNameWithoutExtension(file.Name); } // Взимаме името на албума. var albumName = tag.Album ?? "Unknown"; song = context.Songs.FirstOrDefault(s => s.Name == tag.Title); // Опитваме да видим дали има песен със същото име. // Ако има такава песен отиваме на следващата. if (song != null) { return; } // Ако няма банда с това име, създаваме нова. band = context.Bands.FirstOrDefault(f => f.Name == bandName); if (band is null) { band = new BandEF { Name = bandName }; MainViewModel.Collection.Bands.Add(new Band(bandName)); context.Bands.Add(band); } // Ако няма албум с това име, създаваме нов. album = context.Albums.FirstOrDefault(f => f.Name == albumName); if (album is null) { album = new AlbumEF { Name = albumName }; MainViewModel.Collection.Albums.Add(new Album(albumName)); context.Albums.Add(album); } //Създаваме песента с нейната информация. song = new Song { Name = tag.Title, Duration = tagLibFile.Properties.Duration, Location = file.FullName, Volume = GetSongVolume(path) }; MainViewModel.Collection.Songs.Add(song); // Добавяме песента към SQL базата данни. context.Songs.Add(song); // Запазваме песента. await context.SaveChangesAsync(); // SQL създава ID на песента и я взимаме обратно. song = context.Songs.FirstOrDefault(f => f.Name == song.Name); // Добавяме албум с тази песен. context.AlbumsSongs.Add(new AlbumSongsEF { AlbumID = context.Albums.FirstOrDefault(f => f.Name == albumName).ID, SongID = song.ID }); // Добавяме банда с тази песен. context.BandsSongs.Add(new BandSongsEF { BandID = context.Bands.FirstOrDefault(f => f.Name == bandName).ID, SongID = song.ID }); await context.SaveChangesAsync(); } }