void OnNodeLoaded(INvtNode node) { if (node.identity.uris.Count() != 0) { try { DeviceDescriptionHolder devHolder = new DeviceDescriptionHolder(); var scopes = node.identity.scopes.Select(x => x.OriginalString); devHolder.Uris = node.identity.uris; devHolder.Address = ""; devHolder.Uris.ForEach(x => { if (x.IsAbsoluteUri) { devHolder.Address += x.DnsSafeHost + "; "; } else { dbg.Error("Uri not supported"); } }); devHolder.Address = devHolder.Address.TrimEnd(new Char[] { ';', ' ' }); if (devHolder.Address == "") { devHolder.IsInvalidUris = true; devHolder.Address = "Invalid Uri"; } devHolder.Name = ScopeHelper.GetName(scopes); devHolder.Location = ScopeHelper.GetLocation(scopes); devHolder.DeviceIconUri = ScopeHelper.GetDeviceIconUri(scopes); devHolder.Account = GetCurrentAccount(); SessionProcess(devHolder, false); Devices.Add(devHolder); subscriptions.Add(node.RegisterRemovalHandler(() => { currentDispatcher.BeginInvoke(() => { if (devHolder == SelectedDevice) { //Publish release ui event PublishRefresh(); } Devices.Remove(devHolder); }); })); } catch (Exception err) { dbg.Error(err); } } }
void OnNodeLoaded(INvtNode node) { if (IsDisposed || Disposing) return; if (node.identity.uris.Length != 0) { try { var devHolder = new DeviceDescriptionHolder(); var scopes = node.identity.scopes.Select(x => x.OriginalString).ToList(); devHolder.Uris = node.identity.uris; devHolder.Address = ""; foreach (var uri in devHolder.Uris) { if (uri.IsAbsoluteUri) devHolder.Address += uri.DnsSafeHost + "; "; } devHolder.Address = devHolder.Address.TrimEnd(';', ' '); if (devHolder.Address == "") { devHolder.IsInvalidUris = true; devHolder.Address = "Invalid Uri"; } devHolder.Name = ScopeHelper.GetName(scopes); devHolder.Location = ScopeHelper.GetLocation(scopes); devHolder.DeviceIconUri = ScopeHelper.GetDeviceIconUri(scopes); MainForm.ONVIFDevices.Add(devHolder); string n = devHolder.Name; if (!string.IsNullOrEmpty(devHolder.Location)) n += " (" + devHolder.Location + ")"; lbONVIFDevices.Items.Add(new MainForm.ListItem2(n, MainForm.ONVIFDevices.Count - 1)); } catch (Exception ex) { Logger.LogExceptionToFile(ex); } } }