public SingleCollectionViewModel GetSingleCollection(int collectionId)
        {
            SingleCollectionViewModel collection = new SingleCollectionViewModel();

            using (var db = new SQLite.SQLiteConnection(app.DBPath))
            {
                var _collection = (db.Table<Collection>().Where(
                    c => c.Id == collectionId)).FirstOrDefault();
                collection.Id = _collection.Id;
                collection.Title = _collection.Title;
                collection.DateCreated = _collection.DateCreated;
                collection.Void = _collection.Void;

                // GET ALBUMS
                var _albums = (db.Table<Album>().Where(
                    c => c.CollectionId == collectionId)).ToList();

                List<lfm> albumList = new List<lfm>();
                foreach (var _album in _albums)
                {
                    lfm album = LastGetAlbum(_album.MusicBrainzId);
                    albumList.Add(album);
                }
                collection.Albums = albumList;
            }
            return collection;
        }
示例#2
0
        /// <summary>
        /// Populates the page with content passed during navigation.  Any saved state is also
        /// provided when recreating a page from a prior session.
        /// </summary>
        /// <param name="navigationParameter">The parameter value passed to
        /// <see cref="Frame.Navigate(Type, Object)"/> when this page was initially requested.
        /// </param>
        /// <param name="pageState">A dictionary of state preserved by this page during an earlier
        /// session.  This will be null the first time a page is visited.</param>
        protected override void LoadState(Object navigationParameter, Dictionary<String, Object> pageState)
        {
            SingleCollectionViewModel ctx = new SingleCollectionViewModel();
            // TODO: Create an appropriate data model for your problem domain to replace the sample data
            //var group = SampleDataSource.GetGroup((String)navigationParameter);
            var collection = ctx.GetSingleCollection((int)navigationParameter);

            
            this.DefaultViewModel["Group"] = collection;
            this.DefaultViewModel["Items"] = collection.Albums;

            var relevantMusic = new List<StorageFile>();

            foreach (var album in collection.Albums)
            {
                var result = ctx.RelevantMusicCollection(album.album);
                relevantMusic.AddRange(result);
            }

            SetLocalMedia(relevantMusic.FirstOrDefault());

            


            if (pageState == null)
            {
                this.itemListView.SelectedItem = null;
                // When this is a new page, select the first item automatically unless logical page
                // navigation is being used (see the logical page navigation #region below.)
                if (!this.UsingLogicalPageNavigation() && this.itemsViewSource.View != null)
                {
                    this.itemsViewSource.View.MoveCurrentToFirst();
                }
            }
            else
            {
                // Restore the previously saved state associated with this page
                if (pageState.ContainsKey("SelectedItem") && this.itemsViewSource.View != null)
                {
                    var selectedItem = ctx.LastGetAlbum((String)pageState["SelectedItem"]);
                    this.itemsViewSource.View.MoveCurrentTo(selectedItem);
                }
            }
        }
        /// <summary>
        /// Populates the page with content passed during navigation.  Any saved state is also
        /// provided when recreating a page from a prior session.
        /// </summary>
        /// <param name="navigationParameter">The parameter value passed to
        /// <see cref="Frame.Navigate(Type, Object)"/> when this page was initially requested.
        /// </param>
        /// <param name="pageState">A dictionary of state preserved by this page during an earlier
        /// session.  This will be null the first time a page is visited.</param>
        protected override void LoadState(Object navigationParameter, Dictionary<String, Object> pageState)
        {
            // new instance of the singlecollectionvm to return a single collection from last.fm api
            SingleCollectionViewModel ctx = new SingleCollectionViewModel();
            var collection = ctx.GetSingleCollection((int)navigationParameter);

            this.DefaultViewModel["Group"] = collection;
            this.DefaultViewModel["Items"] = collection.Albums;

            var relevantMusic = new List<StorageFile>();

            // checks the music collection on the user computer for relevant music files
            foreach (var album in collection.Albums)
            {
                var result = ctx.RelevantMusicCollection(album.album);
                relevantMusic.AddRange(result);
            }

            // plays the first in the list of relevant music
            SetLocalMedia(relevantMusic.FirstOrDefault());

            if (pageState == null)
            {
                this.itemListView.SelectedItem = null;
                // When this is a new page, select the first item automatically unless logical page
                // navigation is being used (see the logical page navigation #region below.)
                if (!this.UsingLogicalPageNavigation() && this.itemsViewSource.View != null)
                {
                    this.itemsViewSource.View.MoveCurrentToFirst();
                }
            }
            else
            {
                // Restore the previously saved state associated with this page
                if (pageState.ContainsKey("SelectedItem") && this.itemsViewSource.View != null)
                {
                    // retrieve the last album that was selected
                    var selectedItem = ctx.LastGetAlbum((String)pageState["SelectedItem"]);
                    this.itemsViewSource.View.MoveCurrentTo(selectedItem);
                }
            }
        }