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)); }