public static Song FromDBObject(Models.Song dbSong, Models.mediadbContext dbContext) { int set = (int)(dbSong.Set ?? 0); var artists = from artistSong in dbContext.ArtistSong where artistSong.SongHash == dbSong.Hash join artist in dbContext.Artist on artistSong.ArtistName equals artist.Name where artist.Name != "unknown" select new Artist(artist.Name, artist.NiceName); var albums = from album in dbContext.Album where album.ArtistName == dbSong.AlbumArtistName && album.Name == dbSong.AlbumName join artist in dbContext.Artist on album.ArtistName equals artist.Name select new Album(album.Name, album.Title, new Artist(artist.Name, artist.NiceName)); var resultAlbum = albums.Count() > 0 ? albums.First() : (Album?)null; return(new Song(dbSong.Hash, dbSong.Title, (float)dbSong.Length, (int)dbSong.Track, set, dbSong.Genre, dbSong.Path, resultAlbum, artists)); }
public static Album FromDBObject(Models.Album album, Models.mediadbContext dbContext) { var artist = Artist.FromDBObject(dbContext.Artist.Where(a => a.Name == album.ArtistName).First()); return(new Album(album.Name, album.Title, artist)); }