private void OnUpnpDeviceFound(object sender, IUpnpDeviceResponse e)
        {
            if (e.Server.IndexOf("sonos", StringComparison.OrdinalIgnoreCase) < 0)
            {
                return;
            }

            var policy = Policy
                .Handle<WebException>()
                .WaitAndRetry(new[]
                {
                    TimeSpan.FromSeconds(1),
                    TimeSpan.FromSeconds(2),
                    TimeSpan.FromSeconds(5),
                });

            policy.Execute(() => CreateDevice(e.Location));
        }
        private void OnUpnpDeviceFound(object sender, IUpnpDeviceResponse e)
        {
            string bridgeId;
            if (!e.OtherHeaders.TryGetValue("hue-bridgeid", out bridgeId))
            {
                return;
            }

            PhilipsHueBridge bridge;
            bridgeId = bridgeId.ToLowerInvariant();

            lock (_lock)
            {
                if (_bridges.ContainsKey(bridgeId))
                {
                    return;
                }
                bridge = new PhilipsHueBridge(bridgeId, e.IpAddress);
                _bridges[bridgeId] = bridge;
            }

            Task.Run(() => HandleHueBridge(bridge));
        }
 private void OnDeviceFound(IUpnpDeviceResponse device)
 {
     DeviceFound?.Invoke(this, device);
 }
        private async void OnUpnpDeviceFound(object sender, IUpnpDeviceResponse e)
        {
            if (e.Usn.IndexOf("wifi-switch", StringComparison.OrdinalIgnoreCase) < 0 &&
                !e.FriendlyName.Equals("mystrom wifi switch", StringComparison.OrdinalIgnoreCase))
            {
                return;
            }

            await Policy
                .Handle<WebException>()
                .OrResult(false)
                .WaitAndRetryAsync(new[]
                {
                    TimeSpan.FromSeconds(1),
                    TimeSpan.FromSeconds(2),
                    TimeSpan.FromSeconds(5),
                })
                .ExecuteAsync(async () => await RegisterDevice(e.IpAddress));
        }