Exemple #1
0
        public void LoadAlbum(WebAlbum album)
        {
            _parent.CanMoveNext = false;
            this.IsLoading      = true;

            if (album == null)
            {
                return;
            }

            string fullUrlToAlbumXmlDetails = String.Concat(Urls.Album, album.AlbumMediaId);

            AlbumDetailsDownloader.DownloadAsync(fullUrlToAlbumXmlDetails, (webAlbum) =>
            {
                if (webAlbum != null)
                {
                    DownloadedAlbum = webAlbum;
                    UpdateDetail(DownloadedAlbum);
                }
                else
                {
                    SelectedAlbumTitle =
                        "Could not get album details";
                }

                _parent.CanMoveNext = true;
                this.IsLoading      = false;
            });
        }
Exemple #2
0
        private void GetAlbumDetailsFromWebsite(Guid albumMediaId)
        {
            if (albumMediaId != Guid.Empty)
            {
                var url = String.Concat(Urls.Album, albumMediaId);
                AlbumDetailsDownloader.DownloadAsync(url, album =>
                {
                    if (album != null)
                    {
                        LinkStatus = LinkStatus.Linked;

                        Right = new AlbumThumbDetails
                        {
                            Artist     = album.Artist,
                            ArtworkUrl = album.ArtworkUrl,
                            Title      = album.Title,
                        };
                    }
                    else
                    {
                        LinkStatus = LinkStatus.Unlinked;
                    }
                });
            }
            else
            {
                LinkStatus = LinkStatus.Unlinked;
            }
        }
        public void LoadFromZuneWebsite()
        {
            var warningMsg = new ErrorMessage(ErrorMode.Warning, "This process could take a very long time, are you sure?");

            ZuneMessageBox.Show(warningMsg, () =>
            {
                this.CanShowScanAllButton = false;
                int counter = 0;

                //we have to get the list from the CollectionView because of how its sorted
                var toScan = (from object album in _cvs.View select album as AlbumDetailsViewModel)
                             .ToList().Where(x => x.LinkStatus != LinkStatus.Unlinked);

                foreach (AlbumDetailsViewModel album in toScan)
                {
                    album.LinkStatus = LinkStatus.Unknown; // reset the linkstatus so we can scan all multiple times
                    album.Right      = null;

                    AlbumDetailsViewModel closedAlbum = album;
                    //TODO: don't like having to call back into the zune db just to get the albumMediaId
                    var url = String.Concat(Urls.Album, album.AlbumMediaId);
                    AlbumDetailsDownloader.DownloadAsync(url, dledAlbum =>
                    {
                        if (dledAlbum != null)
                        {
                            closedAlbum.LinkStatus = LinkStatus.Linked;
                            closedAlbum.Right      = new AlbumThumbDetails
                            {
                                Artist     = dledAlbum.Artist,
                                ArtworkUrl = dledAlbum.ArtworkUrl,
                                Title      = dledAlbum.Title
                            };
                        }
                        else
                        {
                            closedAlbum.LinkStatus = LinkStatus.Unlinked;
                        }

                        counter++;
                        Trace.WriteLine(counter);
                        ReportProgress(counter, toScan.Count());
                    });
                }
            });
        }