public async static Task<MusicLibraryViewModel.AlbumItem> GetAlbumItemFromFolder(StorageFolder item, StorageFolderQueryResult albumQueryResult, int artistId) { var albumDataRepository = new AlbumDataRepository(); var musicAttr = await item.Properties.GetMusicPropertiesAsync(); var albumItem = await albumDataRepository.LoadAlbumViaName(artistId, musicAttr.Album); if (albumItem == null) { var thumbnail = await item.GetThumbnailAsync(ThumbnailMode.MusicView, 250); albumItem = new MusicLibraryViewModel.AlbumItem(thumbnail, musicAttr.Album, albumQueryResult.Folder.DisplayName) { ArtistId = artistId }; await albumDataRepository.Add(albumItem); } var files = await item.GetFilesAsync(CommonFileQuery.OrderByMusicProperties); await albumItem.LoadTracks(files); return albumItem; }
public async Task Initialize(StorageFolderQueryResult albumQueryResult, ArtistItem artist) { await LoadAlbums(albumQueryResult, artist.Id); }
private async Task LoadAlbums(StorageFolderQueryResult albumQueryResult, int artistId) { IReadOnlyList<StorageFolder> albumFolders = null; try { albumFolders = await albumQueryResult.GetFoldersAsync(); } catch (Exception e) { Debug.WriteLine(e.ToString()); } if (albumFolders != null) { foreach (var item in albumFolders) { AlbumItem albumItem = await GetInformationsFromMusicFile.GetAlbumItemFromFolder(item, albumQueryResult, artistId); await albumItem.GetCover(); // Album is in database, update with cover. await _albumDataRepository.Update(albumItem); await DispatchHelper.InvokeAsync(() => { Albums.Add(albumItem); if (Locator.MusicLibraryVM.RandomAlbums.Count < 12) { Locator.MusicLibraryVM.RandomAlbums.Add(albumItem); } }); Locator.MusicLibraryVM.AlbumCover.Add(albumItem.Picture); } } }
public StorageFolderQueryResultEvents(StorageFolderQueryResult This) { this.This = This; }