ATMLCommonLibrary.forms.NetworkPathSelectionForm.ProcessHardwareItemComponents C# (CSharp) Method

ProcessHardwareItemComponents() private method

private ProcessHardwareItemComponents ( ) : void
return void
        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 );
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }