public void ValidateTCPProtocolConfiguration(PSNetworkWatcherConnectionMonitorTcpConfiguration tcpProtocolConfiguration)
        {
            this.ValidatePort(tcpProtocolConfiguration.Port, throwIfNull: true);

            if (!string.IsNullOrEmpty(tcpProtocolConfiguration.DestinationPortBehavior) &&
                !string.Equals(tcpProtocolConfiguration.DestinationPortBehavior, "None", StringComparison.OrdinalIgnoreCase) &&
                !string.Equals(tcpProtocolConfiguration.DestinationPortBehavior, "ListenIfAvailable", StringComparison.OrdinalIgnoreCase))
            {
                throw new PSArgumentException(Properties.Resources.UnsupportedDestinationPortBehavior);
            }
        }
Beispiel #2
0
        public override void Execute()
        {
            base.Execute();

            PSNetworkWatcherConnectionMonitorProtocolConfiguration protocolConfiguration;

            if (TcpProtocol.IsPresent)
            {
                protocolConfiguration = new PSNetworkWatcherConnectionMonitorTcpConfiguration()
                {
                    Port = this.Port,
                    DisableTraceRoute       = this.DisableTraceRoute.IsPresent,
                    DestinationPortBehavior = this.DestinationPortBehavior
                };
            }
            else if (HttpProtocol.IsPresent)
            {
                protocolConfiguration = new PSNetworkWatcherConnectionMonitorHttpConfiguration()
                {
                    Port                  = this.Port,
                    Method                = this.Method,
                    Path                  = this.Path,
                    RequestHeaders        = this.GetHeaders(),
                    ValidStatusCodeRanges = this.ValidStatusCodeRange?.ToList(),
                    PreferHTTPS           = this.PreferHTTPS.IsPresent
                };
            }
            else if (IcmpProtocol.IsPresent)
            {
                protocolConfiguration = new PSNetworkWatcherConnectionMonitorIcmpConfiguration()
                {
                    DisableTraceRoute = this.DisableTraceRoute.IsPresent
                };
            }
            else
            {
                throw new ArgumentException("Parameter set shall be TCP, HTTP, or ICMP");
            }

            this.Validate(protocolConfiguration);

            WriteObject(protocolConfiguration);
        }
 public void ValidateTCPProtocolConfiguration(PSNetworkWatcherConnectionMonitorTcpConfiguration tcpProtocolConfiguration)
 {
     this.ValidatePort(tcpProtocolConfiguration.Port, throwIfNull: true);
 }