/// <summary> /// Simple multi request example showing how to start session and list media in a single HTTP request /// </summary> static void MultiRequestExample() { KalturaClient client = new KalturaClient(GetConfig()); client.StartMultiRequest(); client.SessionService.Start(ADMIN_SECRET, "", KalturaSessionType.ADMIN, PARTNER_ID, 86400, ""); client.KS = "{1:result}"; // for the current multi request, the result of the first call will be used as the ks for next calls KalturaMediaEntryFilter filter = new KalturaMediaEntryFilter(); filter.OrderBy = KalturaMediaEntryOrderBy.CREATED_AT_DESC; client.MediaService.List(filter, new KalturaFilterPager()); KalturaMultiResponse response = client.DoMultiRequest(); // in multi request, when there is an error, an exception is NOT thrown, so we should check manually if (response[1].GetType() == typeof(KalturaAPIException)) { Console.WriteLine("Error listing media " + ((KalturaAPIException)response[1]).Message); // we can throw the exception if we want //throw (KalturaAPIException)response[1]; } else { KalturaMediaListResponse mediaList = (KalturaMediaListResponse)response[1]; Console.WriteLine("Total media entries: " + mediaList.TotalCount); foreach (KalturaMediaEntry mediaEntry in mediaList.Objects) { Console.WriteLine("Media Name: " + mediaEntry.Name); } } }
static void PlaylistExecuteMultiRequestExample() { KalturaClient client = new KalturaClient(GetConfig()); client.StartMultiRequest(); // Request 1 client.SessionService.Start(ADMIN_SECRET, "", KalturaSessionType.ADMIN, PARTNER_ID, 86400, ""); client.KS = "{1:result}"; // for the current multi request, the result of the first call will be used as the ks for next calls // Request 2 client.MediaService.List(); KalturaMultiResponse response = client.DoMultiRequest(); foreach (object obj in response) { if (obj.GetType() == typeof(KalturaAPIException)) { Console.WriteLine("Error occurred: " + ((KalturaAPIException)obj).Message); } } String twoEntries = ""; if (response[1].GetType() == typeof(KalturaMediaListResponse)) { KalturaMediaListResponse mediaListResponse = (KalturaMediaListResponse)response[1]; twoEntries = mediaListResponse.Objects[0].Id + ", " + mediaListResponse.Objects[1].Id; Console.WriteLine("We will use the first 2 entries we got as a reponse: " + twoEntries); } if (twoEntries.Equals("")) { return; } string ks = client.GenerateSession(ADMIN_SECRET, USER_ID, KalturaSessionType.ADMIN, PARTNER_ID, 86400, ""); client.KS = ks; KalturaPlaylist newPlaylist = new KalturaPlaylist(); newPlaylist.Name = "Test Playlist"; newPlaylist.PlaylistContent = twoEntries; newPlaylist.PlaylistType = KalturaPlaylistType.STATIC_LIST; KalturaPlaylist kPlaylist = client.PlaylistService.Add(newPlaylist); // new multirequest client.StartMultiRequest(); client.PlaylistService.Execute(kPlaylist.Id); client.PlaylistService.Execute(kPlaylist.Id); response = client.DoMultiRequest(); foreach (object obj in response) { if (obj.GetType() == typeof(KalturaAPIException)) { Console.WriteLine("Error occurred: " + ((KalturaAPIException)obj).Message); } } foreach (var currentResponse in response) { if (currentResponse.GetType() != typeof(KalturaMultiResponse)) { throw new Exception("Unexpected multirequest response"); } } }