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

ProcessCapabilitites() private method

private ProcessCapabilitites ( Capabilities capabilities ) : void
capabilities ATMLModelLibrary.model.equipment.Capabilities
return void
        private void ProcessCapabilitites( Capabilities capabilities )
        {
            if (capabilities != null)
            {
                var g = new ListViewGroup( "Capabilities", "Capabilities" );
                lvNetworkPaths.Groups.Add( g );
                if (capabilities.Items != null )
                {
                    foreach (object item in capabilities.Items)
                    {
                        var capability = item as Capability;
                        if (capability != null)
                        {
                            Interface capabilityInterface = capability.Interface;
                            if (capabilityInterface != null)
                            {
                                List<Port> ports = capabilityInterface.Ports;
                                if (ports != null)
                                {
                                    foreach (Port port in ports)
                                    {
                                        var xpath = new StringBuilder( "//" );
                                        xpath.Append( XPathManager.DeterminePathName( _hardwareItemDescription ) );
                                        xpath.Append( "/" ).Append( XPathManager.DeterminePathName( capabilities ) );
                                        xpath.Append( "/" ).Append( XPathManager.DeterminePathName( capability ) );
                                        xpath.Append( "[@name=\"" )
                                             .Append( capability.name )
                                             .Append( "\"]" );
                                        xpath.Append( "/" )
                                             .Append( XPathManager.DeterminePathName( capabilityInterface ) );
                                        xpath.Append( "/" ).Append( XPathManager.DeterminePathName( ports ) );
                                        xpath.Append( "/" )
                                             .Append( XPathManager.DeterminePathName( port ) );
                                        xpath.Append( "[@name=\"" ).Append( port.name ).Append( "\"]" );
                                        string pathValues = NetworkNode.ExtractPathValues( xpath.ToString() );
                                        var lvi = new ListViewItem( pathValues );
                                        lvi.Tag = xpath.ToString();
                                        lvi.Group = g;
                                        lvNetworkPaths.Items.Add( lvi );
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }