public KalturaMultiResponse DoMultiRequest() { XmlElement multiRequestResult = DoQueue(); KalturaMultiResponse multiResponse = new KalturaMultiResponse(); if (multiRequestResult == null) { return(multiResponse); } foreach (XmlElement arrayNode in multiRequestResult.ChildNodes) { if (arrayNode["error"] != null) { multiResponse.Add(new KalturaAPIException(arrayNode["error"]["code"].InnerText, arrayNode["error"]["message"].InnerText)); } else if (arrayNode["objectType"] != null) { multiResponse.Add(KalturaObjectFactory.Create(arrayNode)); } else { multiResponse.Add(arrayNode.InnerText); } } return(multiResponse); }
/// <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); } } }
private KalturaMultiResponse ParseMultiRequestResult(XmlElement childNode, bool incrementI) { int i = 0; KalturaMultiResponse multiResponse = new KalturaMultiResponse(); foreach (XmlElement arrayNode in childNode.ChildNodes) { XmlElement error = arrayNode["error"]; if (error != null && error["code"] != null && error["message"] != null) { multiResponse.Add(new KalturaAPIException(error["code"].InnerText, error["message"].InnerText)); } else if (arrayNode["objectType"] != null) { multiResponse.Add(KalturaObjectFactory.Create(arrayNode, _MultiRequestReturnType[i])); } else if (arrayNode["item"] != null) { multiResponse.Add(ParseMultiRequestResult(arrayNode, false)); } else { multiResponse.Add(arrayNode.InnerText); } if (incrementI) { i++; } } return(multiResponse); }
public KalturaMultiResponse DoMultiRequest() { XmlElement multiRequestResult = DoQueue(); KalturaMultiResponse multiResponse = new KalturaMultiResponse(); if (multiRequestResult == null) { return(multiResponse); } int i = 0; foreach (XmlElement arrayNode in multiRequestResult.ChildNodes) { XmlElement error = arrayNode["error"]; if (error != null && error["code"] != null && error["message"] != null) { multiResponse.Add(new KalturaAPIException(error["code"].InnerText, error["message"].InnerText)); } else if (arrayNode["objectType"] != null) { multiResponse.Add(KalturaObjectFactory.Create(arrayNode, _MultiRequestReturnType[i])); } else { multiResponse.Add(arrayNode.InnerText); } i++; } _MultiRequestReturnType.Clear(); _MultiRequestReturnType = null; return(multiResponse); }
/// <summary> /// Shows how to start session, create a mix, add media, and append it to a mix timeline using multi request /// </summary> private static void AdvancedMultiRequestExample() { 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 FileStream fileStream = new FileStream("DemoVideo.flv", FileMode.Open, FileAccess.Read); // Request 2 KalturaUploadToken uploadToken = client.UploadTokenService.Add(); // Request 3 uploadToken = client.UploadTokenService.Upload("{2:result}", fileStream); // Request 4 KalturaMediaEntry mediaEntry = new KalturaMediaEntry(); mediaEntry.Name = "Media Entry Using C#.Net Client To Test Flavor Replace"; mediaEntry.MediaType = KalturaMediaType.VIDEO; mediaEntry = client.MediaService.Add(mediaEntry); // Request 5 KalturaUploadedFileTokenResource mediaResource = new KalturaUploadedFileTokenResource(); mediaResource.Token = "{2:result:id}"; mediaEntry = client.MediaService.AddContent("{4:result}", mediaResource); // map paramters from responses to requests according to response calling order and names to request calling order and C# method parameter name client.MapMultiRequestParam(2, ":id", 3, "uploadTokenId"); client.MapMultiRequestParam(4, ":id", 5, "entryId"); KalturaMultiResponse response = client.DoMultiRequest(); foreach (object obj in response) { if (obj.GetType() == typeof(KalturaAPIException)) { Console.WriteLine("Error occurred: " + ((KalturaAPIException)obj).Message); } } // when accessing the response object we will use an index and not the response number (response number - 1) if (response[4].GetType() == typeof(KalturaMediaEntry)) { KalturaMediaEntry newMediaEntry = (KalturaMediaEntry)response[4]; Console.WriteLine("Multirequest newly added entry id: " + newMediaEntry.Id); } }
public KalturaMultiResponse DoMultiRequest() { XmlElement multiRequestResult = DoQueue(); KalturaMultiResponse multiResponse = new KalturaMultiResponse(); if (multiRequestResult == null) { resetRequest(); return(multiResponse); } multiResponse = ParseMultiRequestResult(multiRequestResult); resetRequest(); return(multiResponse); }
public KalturaMultiResponse DoMultiRequest() { XmlElement multiRequestResult = DoQueue(); KalturaMultiResponse multiResponse = new KalturaMultiResponse(); foreach (XmlElement arrayNode in multiRequestResult.ChildNodes) { if (arrayNode["error"] != null) multiResponse.Add(new KalturaAPIException(arrayNode["error"]["code"].InnerText, arrayNode["error"]["message"].InnerText)); else if (arrayNode["objectType"] != null) multiResponse.Add(KalturaObjectFactory.Create(arrayNode)); else multiResponse.Add(arrayNode.InnerText); } return multiResponse; }
/// <summary> /// Shows how to start session, create a mix, add media, and append it to a mix timeline using multi request /// </summary> private static void AdvancedMultiRequestExample() { FileStream fileStream = new FileStream("DemoVideo.flv", FileMode.Open, FileAccess.Read); KalturaMediaEntry mediaEntry = new KalturaMediaEntry(); mediaEntry.Name = "Media Entry Using C#.Net Client To Test Flavor Replace"; mediaEntry.MediaType = KalturaMediaType.VIDEO; KalturaUploadedFileTokenResource mediaResource = new KalturaUploadedFileTokenResource(); mediaResource.Token = "{1:result:id}"; KalturaClient client = new KalturaClient(GetConfig()); client.KS = client.GenerateSession(ADMIN_SECRET, "", KalturaSessionType.ADMIN, PARTNER_ID); client.StartMultiRequest(); client.UploadTokenService.Add(); client.MediaService.Add(mediaEntry); client.UploadTokenService.Upload("{1:result:id}", fileStream); client.MediaService.AddContent("{2:result:id}", mediaResource); KalturaMultiResponse response = client.DoMultiRequest(); foreach (object obj in response) { if (obj is KalturaAPIException) { Console.WriteLine("Error occurred: " + ((KalturaAPIException)obj).Message); } } // when accessing the response object we will use an index and not the response number (response number - 1) if (response[3] is KalturaMediaEntry) { KalturaMediaEntry newMediaEntry = (KalturaMediaEntry)response[3]; Console.WriteLine("Multirequest newly added entry id: " + newMediaEntry.Id + ", status: " + newMediaEntry.Status); } }
public KalturaMultiResponse DoMultiRequest() { XmlElement multiRequestResult = DoQueue(); KalturaMultiResponse multiResponse = new KalturaMultiResponse(); if (multiRequestResult == null) { return multiResponse; } multiResponse = ParseMultiRequestResult(multiRequestResult); _MultiRequestReturnType.Clear(); _MultiRequestReturnType = null; return multiResponse; }
private KalturaMultiResponse ParseMultiRequestResult(XmlElement childNode, bool incrementI = true) { int i = 0; KalturaMultiResponse multiResponse = new KalturaMultiResponse(); foreach(XmlElement arrayNode in childNode.ChildNodes) { XmlElement error = arrayNode["error"]; if (error != null && error["code"] != null && error["message"] != null) multiResponse.Add(new KalturaAPIException(error["code"].InnerText, error["message"].InnerText)); else if (arrayNode["objectType"] != null) multiResponse.Add(KalturaObjectFactory.Create(arrayNode, _MultiRequestReturnType[i])); else if (arrayNode["item"] != null) multiResponse.Add(ParseMultiRequestResult(arrayNode, false)); else multiResponse.Add(arrayNode.InnerText); if (incrementI) i++; } return multiResponse; }
public KalturaMultiResponse DoMultiRequest() { XmlElement multiRequestResult = DoQueue(); KalturaMultiResponse multiResponse = new KalturaMultiResponse(); if (multiRequestResult == null) { return multiResponse; } int i = 0; foreach (XmlElement arrayNode in multiRequestResult.ChildNodes) { XmlElement error = arrayNode["error"]; if (error != null && error["code"] != null && error["message"] != null) multiResponse.Add(new KalturaAPIException(error["code"].InnerText, error["message"].InnerText)); else if (arrayNode["objectType"] != null) multiResponse.Add(KalturaObjectFactory.Create(arrayNode, _MultiRequestReturnType[i])); else multiResponse.Add(arrayNode.InnerText); i++; } _MultiRequestReturnType.Clear(); _MultiRequestReturnType = null; return multiResponse; }
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"); } } }