示例#1
0
        internal List <PortInfo> FilterPorts(string filter, PortInspectorProtocols portInspectorProtocol, List <PortInfo> unfilteredList)
        {
            _transportFilter = MapPortInspectorProtocolToTransportFilter(portInspectorProtocol);
            SetFilter(filter);

            var filteredList = FilterList(unfilteredList);

            if (filteredList.Count > 0)
            {
                return(filteredList);
            }

            return(null);
        }
示例#2
0
        private ProtocolType MapPortInspectorProtocolToTransportFilter(PortInspectorProtocols portInspectorProtocol)
        {
            CurrentProtocol = portInspectorProtocol;

            switch (CurrentProtocol)
            {
            case PortInspectorProtocols.TCP:
                return(ProtocolType.Tcp);

            case PortInspectorProtocols.UDP:
                return(ProtocolType.Udp);

            default:
                return(ProtocolType.Unspecified);
            }
        }
示例#3
0
        internal void SetFilter(string filter, PortInspectorProtocols protocol)
        {
            var filteredList = _portFilter.FilterPorts(filter, protocol, _portInfoList);

            if (filteredList != null)
            {
                filteredList.Sort();
                Clear();
                foreach (var port in filteredList)
                {
                    Add(port);
                }
                _portInfoList.Where(port => port.IsSelected && !Contains(port))
                .ToList().ForEach(deselect => deselect.IsSelected = false);
                var selectedPorts = this.Where(port => port.IsSelected);
                App.Mediator.Publish(App._EVENT_PORT_PORTSELECTED, new PortSelectedMessage {
                    SelectedPortList = selectedPorts.ToList()
                });
            }
        }