Наследование: IStorageFolderQueryResult
Пример #1
0
        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;
        }
Пример #2
0
 public async Task Initialize(StorageFolderQueryResult albumQueryResult, ArtistItem artist)
 {
     await LoadAlbums(albumQueryResult, artist.Id);
 }
Пример #3
0
            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;
 }