// For AJAX calls to get video list across web parts public bool AsyncVideoList() { string query = Page.Request.QueryString[VideoCloudWebPart.QueryStringKeyAsyncQueryText]; if (query != null) { VideoCloudWebPartUserControl videoCloud = new VideoCloudWebPartUserControl(); BCAPI api = videoCloud.CreateAPI(this.configProvider); if (api != null) { string chooser = Page.Request.QueryString[VideoCloudWebPart.QueryStringKeyAsyncChooserText]; string[] result = null; int pageNumber = 0; if (!string.IsNullOrEmpty(Page.Request.QueryString[Util.PagingKey])) { pageNumber = int.Parse(Page.Request.QueryString[Util.PagingKey]); } query = query.Trim(); if (string.IsNullOrEmpty(chooser)) { result = Util.GetAllVideos(api, pageNumber, query); } else { chooser = chooser.Trim(); if (chooser == "PlaylistId") { // Playlists if (this._playlistCache == null) { result = Util.GetAllPlaylists(api, pageNumber, query); this._playlistCache = result; } else { result = this._playlistCache; } } else { // Videos if (this._videoListCache == null) { result = Util.GetAllVideos(api, pageNumber, query); this._videoListCache = result; } else { result = this._videoListCache; } } } if (result == null) { result = new string[0]; } string[] pagePath = Page.Request.FilePath.Split("/".ToCharArray()); string t = DateTime.Now.Ticks.ToString(); string pagingLink = pagePath[pagePath.Length - 1] + "?" + VideoCloudWebPart.QueryStringKeyAsyncQueryText + "=" + HttpUtility.UrlEncode(query) + "&t=" + t; if (!string.IsNullOrEmpty(chooser)) { pagingLink += "&" + VideoCloudWebPart.QueryStringKeyAsyncChooserText + "=" + HttpUtility.UrlEncode(chooser); } string resultJson = string.Format( @"<script language=""javascript"" type=""text/javascript"" charset=""utf-8"">/*<![CDATA[*/ var vcAsyncVideoCount = {0}; var vcAsyncVideoResults = [{1}]; var vcAsyncVideoPaging = '{2}'; /*]]>*/</script>", result.Length, string.Join(",", result), Util.GetPaging(pageNumber, 50, result.Length, pagingLink)); // Clear the response and just display the results Page.Response.Clear(); Page.Response.Write(resultJson); Page.Response.Flush(); Page.Response.End(); return true; } } return false; }
// For AJAX calls to get video list across web parts public bool AsyncVideoList() { bool returnValue = false; int resultCount = 0; string resultItems = ""; int pageNumber = 0; string pagingLink = ""; string query = ""; if (Page.Request.QueryString[VideoCloudWebPart.QueryStringKeyAsyncQueryText] != null) { query = Page.Request.QueryString[VideoCloudWebPart.QueryStringKeyAsyncQueryText]; } string order = ""; if (Page.Request.QueryString[VideoCloudWebPart.QueryStringKeyAsyncOrder] != null) { order = Page.Request.QueryString[VideoCloudWebPart.QueryStringKeyAsyncOrder]; } string sort = ""; if (Page.Request.QueryString[VideoCloudWebPart.QueryStringKeyAsyncSort] != null) { sort = Page.Request.QueryString[VideoCloudWebPart.QueryStringKeyAsyncSort]; } if (query != null) { VideoCloudWebPartUserControl videoCloud = new VideoCloudWebPartUserControl(); BCAPI api = videoCloud.CreateAPI(this.configProvider); if (api != null) { string chooser = Page.Request.QueryString[VideoCloudWebPart.QueryStringKeyAsyncChooserText]; string[] result = null; if (!string.IsNullOrEmpty(Page.Request.QueryString[Util.PagingKey])) { pageNumber = int.Parse(Page.Request.QueryString[Util.PagingKey]); } query = query.Trim(); if (string.IsNullOrEmpty(chooser)) { result = Util.GetAllVideos(api, pageNumber, query, order, sort); } else { chooser = chooser.Trim(); if (chooser == "PlaylistId") { // Playlists if (this._playlistCache == null) { result = Util.GetAllPlaylists(api, pageNumber, query, order, sort); this._playlistCache = result; } else { result = this._playlistCache; } } else { // Videos if (this._videoListCache == null) { result = Util.GetAllVideos(api, pageNumber, query, order, sort); this._videoListCache = result; } else { result = this._videoListCache; } } } if (result == null) { result = new string[0]; } string[] pagePath = Page.Request.FilePath.Split("/".ToCharArray()); string t = DateTime.Now.Ticks.ToString(); pagingLink = pagePath[pagePath.Length - 1] + "?" + VideoCloudWebPart.QueryStringKeyAsyncQueryText + "=" + HttpUtility.UrlEncode(query) + "&t=" + t; if (!string.IsNullOrEmpty(chooser)) { pagingLink += "&" + VideoCloudWebPart.QueryStringKeyAsyncChooserText + "=" + HttpUtility.UrlEncode(chooser); } resultCount = result.Length; resultItems = string.Join(",", result); returnValue = true; } string resultJson = string.Format( @"<script language=""javascript"" type=""text/javascript"" charset=""utf-8"">/*<![CDATA[*/ var vcAsyncVideoCount = {0}; var vcAsyncVideoResults = [{1}]; var vcAsyncVideoPaging = '{2}'; /*]]>*/</script>", resultCount, resultItems, Util.GetPaging(pageNumber, 50, resultCount, pagingLink)); // Clear the response and just display the results Page.Response.Clear(); Page.Response.Write(resultJson); Page.Response.Flush(); Page.Response.End(); } return(returnValue); }