public void Delete()
        {
            if (ToDeleteInterfaces.Count != 0)
            {
                foreach (var interfaceProfile in ToDeleteInterfaces)
                {
                    DeleteInterfaceProfiles(interfaceProfile);
                    InterfaceProfiles.Remove(interfaceProfile);
                }
            }

            UpdateInterfaceProfileListKey();

            if (ToDeleteNetworks.Count != 0)
            {
                foreach (var networkProfile in ToDeleteNetworks)
                {
                    DeleteNetworkProfiles(networkProfile);
                    NetworkProfiles.Remove(networkProfile);
                }
            }

            // Clear trackers
            ToDeleteInterfaces.Clear();
            ToDeleteNetworks.Clear();
        }
        public void GetNetworks()
        {
            try
            {
                var registry      = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, SixtyFourBitChecked ? RegistryView.Registry64 : RegistryView.Registry32);
                var unmanagedKeys =
                    registry.OpenSubKey(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Signatures\Unmanaged");

                if (unmanagedKeys != null)
                {
                    foreach (var unmanaged in unmanagedKeys.GetSubKeyNames())
                    {
                        var network = GetNetworkMetadata(unmanaged);

                        if (network != null)
                        {
                            NetworkProfiles.Add(network);
                        }
                    }
                    unmanagedKeys.Close();
                }
            }
            catch (Exception ex)
            {
                if (ex is SecurityException || ex is UnauthorizedAccessException)
                {
                    MessageBox.Show(ex.Message + " Please run as administrator.", "Admin rights required");
                }
                if (ex is ArgumentException || ex is NullReferenceException)
                {
                    MessageBox.Show(ex.Message, "Could not find registry key");
                }
            }
        }
        public void LoadAll()
        {
            // Clear collections so no duplicate
            InterfaceProfiles.Clear();
            NetworkProfiles.Clear();
            ToDeleteInterfaces.Clear();
            ToDeleteNetworks.Clear();

            // Load all interfaces
            GetInterfaces();
            GetNetworks();
        }