Hi.
In essence, I’ve found “Related” property of ClientSettingsFolder for the metadata. Then I filtered out cameras that have common parent hardware with the metadata in question.
I’ve used this sample code to retreive address property of original camera hardware:
var address = “”;
var metadataGuid = new Guid(“5c4c76d8-9ddf-40af-8bdb-ed1986e271e0”);
var metadataItem = _configApiClient.GetItem($“Metadata[{metadataGuid}]”);
metadataItem.Children = _configApiClient.GetChildItems(metadataItem.Path);
var hardwarePath = _configApiClient.GetItem(metadataItem.ParentPath).ParentPath;
var clientProfiles =
\_configApiClient.GetItem($"Metadata\[{metadataGuid}\]/ClientSettingsFolder");
clientProfiles.Children = _configApiClient.GetChildItems(clientProfiles.Path);
string related = “”;
foreach (var clientProfilesChild in clientProfiles.Children){
foreach (var property in clientProfilesChild.Properties){
if (property.Key == “Related”){
related = property.Value;}
} }
var cameras = related.Split(‘,’);
var originalHardware = “”;
foreach (var camera in cameras){
var cameraItem = _configApiClient.GetItem(camera);
var cameraItemParent = _configApiClient.GetItem(cameraItem.ParentPath);
if (cameraItemParent.ParentPath != hardwarePath){
// this is the same as metadata
originalHardware = cameraItemParent.ParentPath;
}
}
var hardware = _configApiClient.GetItem(originalHardware);
foreach (var hardwareProperty in hardware.Properties){
if (hardwareProperty.Key == “Address”){
address = hardwareProperty.Value;
}
}