コード例 #1
0
        public void InitializeNavigation()
        {
            try {
                SettingsView             = new SettingsView();
                SettingsViewModel        = new SettingsViewModel(ApplicationModel);
                SettingsView.DataContext = SettingsViewModel;

                DownloadView             = new DownloadView();
                DownloadsViewModel       = new DownloadsViewModel(ApplicationModel);
                DownloadView.DataContext = DownloadsViewModel;

                SpotifyView             = new SpotifyView();
                SpotifyViewModel        = new SpotifyViewModel(ApplicationModel);
                SpotifyView.DataContext = SpotifyViewModel;

                YouTubeView             = new YouTubeView();
                YouTubeViewModel        = new YouTubeViewModel(ApplicationModel);
                YouTubeView.DataContext = YouTubeViewModel;

                ContentWindow = SpotifyView;
            }
            catch (Exception ex) {
                new LogException(ex);
            }
        }
コード例 #2
0
        public ActionResult GetChannelInfo(YouTubeViewModel model)
        {
            if (!ModelState.IsValid)
            {
                model.Message = "You must fill all the required fields.";
                return(View(model));
            }


            List <YouTubeData> youTubeDataList = new List <YouTubeData>();

            try
            {
                var yt = new YouTubeService(new BaseClientService.Initializer()
                {
                    ApiKey = model.YoutubeApiKey
                });

                var channelsListRequest = yt.Channels.List("contentDetails");
                channelsListRequest.Id = model.ChannelId;
                var channelsListResponse = channelsListRequest.Execute();   //< -----this is where trouble starts
                foreach (var channel in channelsListResponse.Items)
                {
                    // of videos uploaded to the authenticated user's channel.
                    var uploadsListId = channel.ContentDetails.RelatedPlaylists.Uploads;
                    var nextPageToken = "";
                    while (nextPageToken != null)
                    {
                        var playlistItemsListRequest = yt.PlaylistItems.List("snippet");
                        playlistItemsListRequest.PlaylistId = uploadsListId;
                        playlistItemsListRequest.MaxResults = 8;
                        playlistItemsListRequest.PageToken  = nextPageToken;
                        // Retrieve the list of videos uploaded to the authenticated user's channel.
                        var playlistItemsListResponse = playlistItemsListRequest.Execute();
                        foreach (var playlistItem in playlistItemsListResponse.Items)
                        {
                            YouTubeData objYouTubeData = new YouTubeData();
                            objYouTubeData.VideoId      = "https://www.youtube.com/embed/" + playlistItem.Snippet.ResourceId.VideoId;
                            objYouTubeData.Title        = playlistItem.Snippet.Title;
                            objYouTubeData.Descriptions = playlistItem.Snippet.Description;
                            objYouTubeData.ImageUrl     = playlistItem.Snippet.Thumbnails.High.Url;
                            objYouTubeData.IsValid      = true;
                            youTubeDataList.Add(objYouTubeData);
                        }
                        nextPageToken = playlistItemsListResponse.NextPageToken;
                    }
                }
            }
            catch (Exception e)
            {
                string errorMessage = "Some exception occured" + e.Data.ToString() + e.Message.ToString() + e.GetBaseException().ToString();
                model.Message = errorMessage;
                return(View(model));
            }

            model.YouTubeDataList = youTubeDataList;

            return(View(model));
        }
コード例 #3
0
        public ActionResult GetChannelInfo()
        {
            var model = new YouTubeViewModel {
                YoutubeApiKey = "YOUR_YOUTUBE_APIKEY"
            };

            return(View(model));
        }
コード例 #4
0
 protected override void OnNavigatedTo(NavigationEventArgs e)
 {
     YouTubeModel = NavigationServices.CurrentViewModel as YouTubeViewModel;
     if (e.NavigationMode == NavigationMode.New && NavigationContext.QueryString.ContainsKey("id"))
     {
         string id = NavigationContext.QueryString["id"];
         if (!String.IsNullOrEmpty(id))
         {
             _isDeepLink  = true;
             YouTubeModel = new YouTubeViewModel();
             NavigationServices.CurrentViewModel = YouTubeModel;
             YouTubeModel.LoadItem(id);
         }
     }
     if (YouTubeModel != null)
     {
         YouTubeModel.ViewType = ViewTypes.Detail;
     }
     DataContext = YouTubeModel;
     base.OnNavigatedTo(e);
 }