Пример #1
0
        public MediaItemViewModel(MediaListViewModel listViewModel, LocalMusicModel mediaItem)
        {
            this.listViewModel = listViewModel;
            MediaItem          = mediaItem;

            RaisePropertyChanged("Title");

            // This app caches all images by loading the WriteableBitmap
            // when the item is created, but production apps would
            // use a more resource friendly paging mechanism or
            // just use PreviewImageUri directly.
            //
            // The reason we cache here is to avoid audio gaps
            // between tracks on transitions when changing artwork.

            PreviewImage = mediaItem.Image;
        }
Пример #2
0
        private void buildLocalMusicAlbumArtistModels()
        {
            foreach (var song in Service.Library.Musics)
            {
                var music = new LocalMusicModel
                {
                    Music = song,
                    Image = Service.Library.Thumbnails.Where(t => t.Id == song.ThumbnailId).FirstOrDefault().Image
                };
                Musics.Add(music);


                var privilegedArtist = "";
                if (song.AlbumArtist != UNKNOWN_ARTIST)
                {
                    privilegedArtist = song.AlbumArtist;
                }
                else if (song.Artist != UNKNOWN_ARTIST)
                {
                    privilegedArtist = song.Artist;
                }
                else
                {
                    privilegedArtist = UNKNOWN_ARTIST;
                }

                var album = Albums.Where(a => a.Title == song.AlbumTitle && a.AlbumArtist == privilegedArtist).FirstOrDefault();
                if (album == null)
                {
                    album = new LocalAlbumModel
                    {
                        Title       = song.AlbumTitle,
                        AlbumArtist = privilegedArtist,
                        Image       = Service.Library.Thumbnails.Where(t => t.Id == music.Music.ThumbnailId).FirstOrDefault().Image,
                        Year        = song.Year
                    };
                    album.Musics.Add(music);
                    Albums.Add(album);
                }
                else
                {
                    album.Musics.Add(music);
                }



                var artist = Artists.Where(a => a.Name == privilegedArtist).FirstOrDefault();
                if (artist == null)
                {
                    artist = new LocalArtistModel
                    {
                        Name = privilegedArtist
                    };
                    artist.Albums.Add(album);
                    artist.Musics.Add(music);
                    Artists.Add(artist);
                }
                else
                {
                    if (!artist.Albums.Contains(album))
                    {
                        artist.Albums.Add(album);
                        artist.Musics.Add(music);
                    }
                    else
                    {
                        artist.Musics.Add(music);
                    }
                }
            }
        }