void SynchronizeParameters(ProbeDialog dlg)
        {
            List <DiscoveryType> oldTypes  = new List <DiscoveryType>(_types);
            List <string>        oldScopes = new List <string>(_scopes);

            foreach (ListViewItem item in dlg.TypesList.Items)
            {
                string type = item.SubItems[0].Text;
                string ns   = item.SubItems[1].Text;

                DiscoveryType t = oldTypes.Where(T => T.Type == type && T.Namespace == ns).FirstOrDefault();
                if (t == null)
                {
                    DiscoveryType newType = new DiscoveryType()
                    {
                        Type = type, Namespace = ns
                    };
                    _types.Add(newType);
                }
                else
                {
                    oldTypes.Remove(t);
                }
            }

            foreach (DiscoveryType t in oldTypes)
            {
                _types.Remove(t);
            }
            foreach (ListViewItem item in dlg.ScopesList.Items)
            {
                string scope = item.SubItems[0].Text;

                if (_scopes.Contains(scope))
                {
                    oldScopes.Remove(scope);
                }
                else
                {
                    _scopes.Add(scope);
                }
            }

            foreach (string scope in oldScopes)
            {
                _scopes.Remove(scope);
            }
        }
        void InitializeTypes()
        {
            DiscoveryType type12 = new DiscoveryType()
            {
                Type = ONVIF_DISCOVER_TYPES, Namespace = ONVIF_NETWORK_WSDL_URL
            };

            _types.Add(type12);

            DiscoveryType type20 = new DiscoveryType()
            {
                Type = ONVIF_20_DEVICE_TYPE, Namespace = ONVIF_20_DEVICE_NS
            };

            _types.Add(type20);
        }