public void Update(NetworkLocation record)
        {
            if (record == null || record.ProfileId == null || record.SignatureId == null)
            {
                return;
            }
            NetworkProfile   profile   = new NetworkProfile(record.ProfileId);
            NetworkSignature signature = new NetworkSignature(record.SignatureId);

            profile.Category    = record.Category;
            profile.Description = signature.Description = record.Description;
            profile.ProfileName = signature.FirstNetwork = record.Name;
            networkProfileMapper.Update(profile);
            networkSignatureMapper.Update(signature);
        }
        public void Update(NetworkSignature record)
        {
            if (record == null || record.Id == null || record.FirstNetwork == null || record.FirstNetwork.Trim().Length == 0)
            {
                return;
            }
            RegistryKey localMachine = Registry.LocalMachine;
            RegistryKey parent       = localMachine.OpenSubKey(PATH);

            string[] profiles = parent.GetSubKeyNames();
            if (Array.Exists(profiles, element => element == record.Id))
            {
                using (RegistryKey profile = parent.OpenSubKey(record.Id, true))
                {
                    profile.SetValue("Description", record.Description);
                    profile.SetValue("FirstNetwork", record.FirstNetwork);
                }
            }
        }
        public List <NetworkSignature> List()
        {
            List <NetworkSignature> result       = new List <NetworkSignature>();
            RegistryKey             localMachine = Registry.LocalMachine;

            using (RegistryKey parent = localMachine.OpenSubKey(PATH))
            {
                string[] signatures = parent.GetSubKeyNames();
                foreach (string id in signatures)
                {
                    RegistryKey      key       = parent.OpenSubKey(id);
                    NetworkSignature signature = new NetworkSignature(id);
                    signature.DefaultGatewayMac = BitConverter.ToString((byte[])key.GetValue("DefaultGatewayMac")).Replace("-", ":");
                    signature.Description       = (string)key.GetValue("Description");
                    signature.DnsSuffix         = (string)key.GetValue("DnsSuffix");
                    signature.FirstNetwork      = (string)key.GetValue("FirstNetwork");
                    signature.ProfileGuid       = (string)key.GetValue("ProfileGuid");
                    signature.Source            = (int)key.GetValue("Source");
                    key.Close();
                    result.Add(signature);
                }
            }
            return(result);
        }