public static async Task <YTChannelsRequestResults> GetChannels(string channelId) { if (YouTubeAPIKey != String.Empty) { CheckYouTubAPIKey(); RegisterRequest(RequestNames.GetChannels); string response = await YouTubeServiceProxies.GetChannels(channelId); if (String.IsNullOrEmpty(response)) { return(null); } YTChannelsRequestResults results = await YouTubeJsonParser.ParseChannels(response); RemoveRequest(RequestNames.GetChannels); return(results); } else { throw new YouTubeException() { Source = "YouTubeServices.GetChannels - API Key cannot be null" }; } }
public static async Task <YTChannelsRequestResults> ParseChannels(string jsonData) { return(await Task.Factory.StartNew(() => { YTChannelsRequestResults channelResults; dynamic dynamicData = JsonConvert.DeserializeObject(jsonData); channelResults = new YTChannelsRequestResults() { Kind = dynamicData.kind, Etag = dynamicData.etag, PageInfo = new YTPageInfoModel() { TotalResults = dynamicData.pageInfo.totalResults, ResultsPerPage = dynamicData.pageInfo.resultsPerPage }, Items = new List <YTChannelModel>() }; foreach (var item in dynamicData.items) { YTChannelModel channel = new YTChannelModel() { Kind = item.kind, Etag = item.etag, Id = item.id, ChannelDetails = new YTChannelContentDetails() { RelatedPlaylists = new YTRelatedPlaylistsModel() { Uploads = item.contentDetails.relatedPlaylists.uploads }, GooglePlusUserId = item.contentDetails.googlePlusUserId } }; (channelResults.Items as List <YTChannelModel>).Add(channel); } return channelResults; })); }