public void AddSong(Song song) { SongDao.AddSong(song); }
private static async Task <Song> CreateSongObjectByFile(StorageFile file, List <Song> listOfSongs) { Song song = null; Stream fileStream = null; TagLib.File tagFile = null; string title = ""; string artist = ""; string album = ""; string genre = ""; string trackNumber = ""; string year = ""; try { if (Stop) { Stop = false; return(new Song()); } fileStream = await file.OpenStreamForReadAsync(); tagFile = TagLib.File.Create(new StreamFileAbstraction(file.Name, fileStream, fileStream)); if (tagFile.Tag.Album != null || string.IsNullOrWhiteSpace(tagFile.Tag.Album) == false) { album = tagFile.Tag.Album; } else { album = "Unknown"; } if (tagFile.Tag.Title == null || string.IsNullOrWhiteSpace(tagFile.Tag.Title)) { title = file.DisplayName; } else { title = tagFile.Tag.Title; } if (tagFile.Tag.FirstAlbumArtist != null && string.IsNullOrWhiteSpace(tagFile.Tag.FirstAlbumArtist) == false) { artist = tagFile.Tag.FirstAlbumArtist; } else if (tagFile.Tag.FirstPerformer != null && string.IsNullOrWhiteSpace(tagFile.Tag.FirstPerformer) == false) { artist = tagFile.Tag.FirstPerformer; } else { artist = "Unknown"; } trackNumber = Convert.ToString(tagFile.Tag.Track); year = Convert.ToString(tagFile.Tag.Year); if (tagFile.Tag.FirstGenre != null && string.IsNullOrWhiteSpace(tagFile.Tag.FirstGenre) == false) { genre = tagFile.Tag.FirstGenre; } else { genre = string.Empty; } var matchingResults = listOfSongs.Where(s => s.Artist == artist && s.Album == album).ToList(); string albumid; string hexColor = string.Empty; if (matchingResults.Count() > 0) { albumid = matchingResults[0].AlbumID; hexColor = matchingResults[0].HexColor; } else { albumid = Guid.NewGuid().ToString(); if (tagFile.Tag.Pictures.Length > 0) { var dataVector = tagFile.Tag.Pictures[0].Data.Data; SaveCoverImageResult imageResult = await ImageHelper.SaveAlbumCover(dataVector, albumid); hexColor = imageResult.HexColor; //ImageHelper.BlurAlbumCover(albumid); } } fileStream.Dispose(); string songid = Guid.NewGuid().ToString(); song = new Song() { Title = title, Artist = artist, Album = album, AlbumID = albumid, ID = songid, Year = year, Track = trackNumber, Genre = genre, SongURI = file.Path, HexColor = hexColor }; SongDao.AddSong(song); } catch { } return(song); }