// Show how to use response-profile private static void ResponseProfileExample() { KalturaClient client = new KalturaClient(GetConfig()); client.KS = client.GenerateSession(ADMIN_SECRET, USER_ID, KalturaSessionType.ADMIN, PARTNER_ID, 86400, ""); int entriesTotalCount = 4; int metadataProfileTotalCount = 2; int metadataPageSize = 2; IList <KalturaMediaEntry> entries = createEntriesWithMetadataObjects(entriesTotalCount, metadataProfileTotalCount); KalturaMediaEntryFilter entriesFilter = new KalturaMediaEntryFilter(); entriesFilter.StatusIn = KalturaEntryStatus.PENDING.ToString() + "," + KalturaEntryStatus.NO_CONTENT.ToString(); entriesFilter.TagsLike = uniqueTag; KalturaFilterPager entriesPager = new KalturaFilterPager(); entriesPager.PageSize = entriesTotalCount; KalturaMetadataFilter metadataFilter = new KalturaMetadataFilter(); metadataFilter.MetadataObjectTypeEqual = KalturaMetadataObjectType.ENTRY; KalturaResponseProfileMapping metadataMapping = new KalturaResponseProfileMapping(); metadataMapping.FilterProperty = "objectIdEqual"; metadataMapping.ParentProperty = "id"; IList <KalturaResponseProfileMapping> metadataMappings = new List <KalturaResponseProfileMapping>(); metadataMappings.Add(metadataMapping); KalturaFilterPager metadataPager = new KalturaFilterPager(); metadataPager.PageSize = metadataPageSize; KalturaDetachedResponseProfile metadataResponseProfile = new KalturaDetachedResponseProfile(); metadataResponseProfile.Name = "metadata_" + uniqueTag; metadataResponseProfile.Type = KalturaResponseProfileType.INCLUDE_FIELDS; metadataResponseProfile.Fields = "id,objectId,createdAt, xml"; metadataResponseProfile.Filter = metadataFilter; metadataResponseProfile.Pager = metadataPager; metadataResponseProfile.Mappings = metadataMappings; IList <KalturaDetachedResponseProfile> metadataResponseProfiles = new List <KalturaDetachedResponseProfile>(); metadataResponseProfiles.Add(metadataResponseProfile); KalturaResponseProfile responseProfile = new KalturaResponseProfile(); responseProfile.Name = "test_" + uniqueTag; responseProfile.SystemName = "test_" + uniqueTag; responseProfile.Type = KalturaResponseProfileType.INCLUDE_FIELDS; responseProfile.Fields = "id,name,createdAt"; responseProfile.RelatedProfiles = metadataResponseProfiles; responseProfile = client.ResponseProfileService.Add(responseProfile); KalturaResponseProfileHolder nestedResponseProfile = new KalturaResponseProfileHolder(); nestedResponseProfile.Id = responseProfile.Id; client.ResponseProfile = nestedResponseProfile; IList <KalturaBaseEntry> list = client.BaseEntryService.List(entriesFilter, entriesPager).Objects; if (entriesTotalCount != list.Count) { throw new Exception("entriesTotalCount[" + entriesTotalCount + "] != list.Count[" + list.Count + "]"); } foreach (KalturaBaseEntry entry in list) { if (entry.RelatedObjects == null) { throw new Exception("Related objects are missing"); } if (!entry.RelatedObjects.ContainsKey(metadataResponseProfile.Name)) { throw new Exception("Related object [" + metadataResponseProfile.Name + "] is missing"); } if (!(entry.RelatedObjects[metadataResponseProfile.Name] is KalturaMetadataListResponse)) { throw new Exception("Related object [" + metadataResponseProfile.Name + "] has wrong type [" + entry.RelatedObjects[metadataResponseProfile.Name].GetType() + "]"); } KalturaMetadataListResponse metadataListResponse = (KalturaMetadataListResponse)entry.RelatedObjects[metadataResponseProfile.Name]; if (metadataListResponse.Objects.Count != metadataProfileTotalCount) { throw new Exception("Related object [" + metadataResponseProfile.Name + "] has wrong number of objects"); } foreach (KalturaMetadata metadata in metadataListResponse.Objects) { if (metadata.ObjectId != entry.Id) { throw new Exception("Related object [" + metadataResponseProfile.Name + "] metadata [" + metadata.Id + "] related to wrong object [" + metadata.ObjectId + "]"); } } } }
// Show how to use response-profile private static void ResponseProfileExample() { KalturaClient client = new KalturaClient(GetConfig()); client.KS = client.GenerateSession(ADMIN_SECRET, USER_ID, KalturaSessionType.ADMIN, PARTNER_ID, 86400, ""); int entriesTotalCount = 4; int metadataProfileTotalCount = 2; int metadataPageSize = 2; IList<KalturaMediaEntry> entries = createEntriesWithMetadataObjects(entriesTotalCount, metadataProfileTotalCount); KalturaMediaEntryFilter entriesFilter = new KalturaMediaEntryFilter(); entriesFilter.StatusIn = KalturaEntryStatus.PENDING.ToString() + "," + KalturaEntryStatus.NO_CONTENT.ToString(); entriesFilter.TagsLike = uniqueTag; KalturaFilterPager entriesPager = new KalturaFilterPager(); entriesPager.PageSize = entriesTotalCount; KalturaMetadataFilter metadataFilter = new KalturaMetadataFilter(); metadataFilter.MetadataObjectTypeEqual = KalturaMetadataObjectType.ENTRY; KalturaResponseProfileMapping metadataMapping = new KalturaResponseProfileMapping(); metadataMapping.FilterProperty = "objectIdEqual"; metadataMapping.ParentProperty = "id"; IList<KalturaResponseProfileMapping> metadataMappings = new List<KalturaResponseProfileMapping>(); metadataMappings.Add(metadataMapping); KalturaFilterPager metadataPager = new KalturaFilterPager(); metadataPager.PageSize = metadataPageSize; KalturaDetachedResponseProfile metadataResponseProfile = new KalturaDetachedResponseProfile(); metadataResponseProfile.Name = "metadata_" + uniqueTag; metadataResponseProfile.Type = KalturaResponseProfileType.INCLUDE_FIELDS; metadataResponseProfile.Fields = "id,objectId,createdAt, xml"; metadataResponseProfile.Filter = metadataFilter; metadataResponseProfile.Pager = metadataPager; metadataResponseProfile.Mappings = metadataMappings; IList<KalturaDetachedResponseProfile> metadataResponseProfiles = new List<KalturaDetachedResponseProfile>(); metadataResponseProfiles.Add(metadataResponseProfile); KalturaResponseProfile responseProfile = new KalturaResponseProfile(); responseProfile.Name = "test_" + uniqueTag; responseProfile.SystemName = "test_" + uniqueTag; responseProfile.Type = KalturaResponseProfileType.INCLUDE_FIELDS; responseProfile.Fields = "id,name,createdAt"; responseProfile.RelatedProfiles = metadataResponseProfiles; responseProfile = client.ResponseProfileService.Add(responseProfile); KalturaResponseProfileHolder nestedResponseProfile = new KalturaResponseProfileHolder(); nestedResponseProfile.Id = responseProfile.Id; client.ResponseProfile = nestedResponseProfile; IList<KalturaBaseEntry> list = client.BaseEntryService.List(entriesFilter, entriesPager).Objects; if(entriesTotalCount != list.Count) { throw new Exception("entriesTotalCount[" + entriesTotalCount + "] != list.Count[" + list.Count + "]"); } foreach(KalturaBaseEntry entry in list) { if(entry.RelatedObjects == null) { throw new Exception("Related objects are missing"); } if(!entry.RelatedObjects.ContainsKey(metadataResponseProfile.Name)) { throw new Exception("Related object [" + metadataResponseProfile.Name + "] is missing"); } if (!(entry.RelatedObjects[metadataResponseProfile.Name] is KalturaMetadataListResponse)) { throw new Exception("Related object [" + metadataResponseProfile.Name + "] has wrong type [" + entry.RelatedObjects[metadataResponseProfile.Name].GetType() + "]"); } KalturaMetadataListResponse metadataListResponse = (KalturaMetadataListResponse)entry.RelatedObjects[metadataResponseProfile.Name]; if(metadataListResponse.Objects.Count != metadataProfileTotalCount) { throw new Exception("Related object [" + metadataResponseProfile.Name + "] has wrong number of objects"); } foreach(KalturaMetadata metadata in metadataListResponse.Objects) { if (metadata.ObjectId != entry.Id) { throw new Exception("Related object [" + metadataResponseProfile.Name + "] metadata [" + metadata.Id + "] related to wrong object [" + metadata.ObjectId + "]"); } } } }