private void ProcessHardwareItemComponents()
{
List<HardwareItemDescriptionComponent> componentList = _hardwareItemDescription.Components;
if (componentList != null)
{
var g = new ListViewGroup( "Components", "Components" );
lvNetworkPaths.Groups.Add( g );
foreach (HardwareItemDescriptionComponent cmp in componentList)
{
string componentName = cmp.ID;
object itemRef = cmp.Item;
if (itemRef != null)
{
var idesc = itemRef as HardwareItemDescription;
if (idesc != null)
{
List<object> interfaces = idesc.Interface;
if (interfaces != null)
{
foreach (object @interface in interfaces)
{
var iports = @interface as PhysicalInterfacePorts;
if (iports != null)
{
List<PhysicalInterfacePortsPort> moreports = iports.Port;
if (moreports != null)
{
foreach (PhysicalInterfacePortsPort physicalInterfacePortsPort in moreports)
{
var xpath = new StringBuilder( "//" );
xpath.Append( XPathManager.DeterminePathName( _hardwareItemDescription ) );
xpath.Append( "/" )
.Append( XPathManager.DeterminePathName( componentList ) );
xpath.Append( "/" ).Append( XPathManager.DeterminePathName( cmp ) );
xpath.Append( "[@ID=\"" )
.Append( componentName )
.Append( "\"]/c:Definition" );
xpath.Append( "/" )
.Append( XPathManager.DeterminePathName( interfaces ) );
xpath.Append( "/" )
.Append( XPathManager.DeterminePathName( moreports ) );
xpath.Append( "/" )
.Append( XPathManager.DeterminePathName( physicalInterfacePortsPort ) );
xpath.Append( "[@name=\"" )
.Append( physicalInterfacePortsPort.name )
.Append( "\"]" );
string pathValues = NetworkNode.ExtractPathValues( xpath.ToString() );
var lvi = new ListViewItem( pathValues );
lvi.Tag = xpath.ToString();
lvi.Group = g;
lvNetworkPaths.Items.Add( lvi );
}
}
}
}
}
}
}
}
}
}