コード例 #1
0
        /// <summary>
        /// Create a gallery item from a row of episode data.
        /// </summary>
        private GalleryItem CreateEpisodeGalleryItem(DataRow episodeData)
        {
            GalleryItem item = new GalleryItem();

            item.Description = (string)episodeData["TV_Episode_Title"];
            item.ItemId      = (int)episodeData["TV_Episode_ID"];

            // Show the release data of the episode in the metadata.
            DateTime releaseDate = (DateTime)episodeData["TV_Episode_Release_Date"];

            item.Metadata = releaseDate.ToString("d");

            //
            // Hook up an event for when the gallery item is invoked.
            //

            item.Invoked += delegate(object sender, EventArgs args)
            {
                GalleryItem galleryItem = (GalleryItem)sender;

                // Navigate to a details page for this episode.
                DetailsPage page = CreateEpisodeDetailsPage(galleryItem.ItemId);
                Application.Current.GoToDetails(page);
            };

            return(item);
        }
コード例 #2
0
        /// <summary>
        /// Finishes any slow data for an episode gallery item.
        /// </summary>
        private void CompleteEpisodeGalleryItem(VirtualList list, int index)
        {
            GalleryItem item        = (GalleryItem)list[index];
            DataRow     episodeData = GetEpisodeData(item.ItemId);

            CompleteEpisodeGalleryItem(item, episodeData);
        }
コード例 #3
0
        /// <summary>
        /// Finishes any slow data for a gallery item.
        /// </summary>
        private void CompleteShowGalleryItem(VirtualList list, int index)
        {
            GalleryItem item     = (GalleryItem)list[index];
            DataRow     showData = GetShowData(item.ItemId);

            CompleteShowGalleryItem(item, showData);
        }
コード例 #4
0
        /// <summary>
        /// Create a gallery item from a row in the table.
        /// </summary>
        private GalleryItem CreateShowGalleryItem(DataRow showData)
        {
            GalleryItem item = new GalleryItem();

            item.Description = (string)showData["TV_Show_Title"];
            item.ItemId      = (int)showData["TV_Show_ID"];

            // Display the show provider in the metadata
            DataRow providerData = Z.DataSetHelpers.GetIDMappedDataRow(showData, "TV_Provider_ID",
                                                                       dataSet.Tables["tbl_TV_Provider"], "TV_Provider_ID");

            item.Metadata = (string)providerData["TV_Provider"];

            //
            // Hook up an event for when the gallery item is invoked.
            //

            item.Invoked += delegate(object sender, EventArgs args)
            {
                GalleryItem galleryItem = (GalleryItem)sender;

                // Navigate to a gallery page for this show.
                GalleryPage page = CreateEpisodeGalleryPage(galleryItem.ItemId);
                Application.Current.GoToGallery(page);
            };

            return(item);
        }
コード例 #5
0
        /// <summary>
        /// Finishes any slow data for a gallery item.
        /// </summary>
        private void CompleteGalleryItem(VirtualList list, int index)
        {
            GalleryItem item      = (GalleryItem)list[index];
            DataRow     movieData = GetMovieData(item.ItemId);

            CompleteGalleryItem(item, movieData);
        }
コード例 #6
0
        /// <summary>
        /// Construct a gallery item for a row of data.
        /// </summary>
        private GalleryItem CreateGalleryItem(DataRow movieData)
        {
            GalleryItem item = new GalleryItem();

            item.Description = (string)movieData["Movie_Title"];
            item.ItemId      = (int)movieData["Movie_ID"];

            // Display the release year as this item's metadata.
            DateTime releaseDate = (DateTime)movieData["Movie_Release_Date"];

            item.Metadata = releaseDate.Year.ToString();


            //
            // Hook up an event for when the gallery item is invoked.
            //

            item.Invoked += delegate(object sender, EventArgs args)
            {
                GalleryItem galleryItem = (GalleryItem)sender;

                // Navigate to a details page for this item.
                DetailsPage page = CreateDetailsPage(galleryItem.ItemId);
                Application.Current.GoToDetails(page);
            };

            return(item);
        }
コード例 #7
0
        /// <summary>
        /// Create the main menu category entry for this experience.
        /// </summary>
        public override MenuCategory CreateMenuCategory()
        {
            MenuCategory category = new MenuCategory();

            // Title
            category.Title = Description;

            // Subtitle (extracted from the total episode count)
            DataTable tbl_TV_Show = dataSet.Tables["tbl_TV_Show"];
            string    subTitle    = String.Format(Z.Resources.TV_Category_SubTitle, tbl_TV_Show.Rows.Count);

            category.SubTitle = subTitle;


            //
            // Featured items
            //

            VirtualList items = new VirtualList(category, null);

            items.EnableSlowDataRequests = true;
            items.RequestSlowDataHandler = new RequestSlowDataHandler(CompleteEpisodeGalleryItem);
            category.Items = items;

            DataTable tbl_TV_Episode_And_Highlight = dataSet.Tables["tbl_TV_Episode_And_Highlight"];
            DataTable tbl_TV_Episode = dataSet.Tables["tbl_TV_Episode"];

            foreach (DataRow highlightData in tbl_TV_Episode_And_Highlight.Rows)
            {
                int     episodeId   = (int)highlightData["TV_Episode_ID"];
                DataRow episodeData = GetEpisodeData(episodeId);

                GalleryItem item = CreateEpisodeGalleryItem(episodeData);
                items.Add(item);

                // Stop once we've found 3 items.
                if (category.Items.Count >= 3)
                {
                    break;
                }
            }


            //
            // Set up a handler for when this category is clicked.
            //

            category.Invoked += delegate(object sender, EventArgs args)
            {
                // Go to our show gallery page.
                GalleryPage page = CreateShowGalleryPage();
                Application.Current.GoToGallery(page);
            };

            return(category);
        }
コード例 #8
0
        /// <summary>
        /// Finishes any slow data for a menu item.
        /// </summary>
        private void CompleteMenuItem(VirtualList list, int index)
        {
            GalleryItem item      = (GalleryItem)list[index];
            DataRow     movieData = GetMovieData(item.ItemId);

            // Load the Small image (note that we need to load a different image,
            // than CompleteGalleryItem, which is why the menu uses a different
            // handler).
            string imageName = (string)movieData["Movie_Image_Gallery_Small"];

            item.Image = LoadImage(imageName);
        }
コード例 #9
0
        /// <summary>
        /// Fill in any slow data for an episode gallery item.
        /// </summary>
        private void CompleteEpisodeGalleryItem(GalleryItem item, DataRow episodeData)
        {
            string imageName = (string)episodeData["TV_Episode_Gallery_Image"];

            item.Image = LoadImage(imageName);
        }
コード例 #10
0
        /// <summary>
        /// Fill in any slow data for a gallery item.
        /// </summary>
        private void CompleteShowGalleryItem(GalleryItem item, DataRow showData)
        {
            string imageName = (string)showData["TV_Show_Image"];

            item.Image = LoadImage(imageName);
        }
コード例 #11
0
        /// <summary>
        /// Finishes any slow data for a gallery item.
        /// </summary>
        private void CompleteGalleryItem(GalleryItem item, DataRow movieData)
        {
            string imageName = (string)movieData["Movie_Image_Gallery_Large"];

            item.Image = LoadImage(imageName);
        }