Пример #1
0
        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);
                }
            }
        }
Пример #2
0
        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);
                }
            }
        }