Ejemplo n.º 1
0
        public void Set(string sysName, string userName, string p_Name, string p_Value)
        {
            SystemHelper sys  = new SystemHelper(sysName);
            IProfileNode util = UserUtilites(sysName, userName);

            if (util != null)
            {
                sys.SetValueByName(util.ProfileNodeId, p_Name, p_Value);
            }
        }
Ejemplo n.º 2
0
        public String Get(string sysName, string userName, string p_Name, String p_DefaultValue)
        {
            SystemHelper sys    = new SystemHelper(sysName);
            String       result = p_DefaultValue;
            IProfileNode util   = UserUtilites(sysName, userName);

            if (util != null)
            {
                result = sys.ValueOrDefault(util.ProfileNodeId, p_Name, p_DefaultValue);
            }
            return(result);
        }
Ejemplo n.º 3
0
        public T Get <T>(string sysName, string userName, string p_Name, T p_DefaultValue)
            where T : struct
        {
            SystemHelper sys    = new SystemHelper(sysName);
            T            result = p_DefaultValue;
            IProfileNode util   = UserUtilites(sysName, userName);

            if (util != null)
            {
                result = sys.ValueOrDefault(util.ProfileNodeId, p_Name, p_DefaultValue);
            }
            return(result);
        }
Ejemplo n.º 4
0
        public T GetEnum <T>(string sysName, string userName, string p_Name, T p_DefaultValue)
            where T : struct
        {
            T            result = p_DefaultValue;
            IProfileNode util   = UserUtilites(sysName, userName);
            SystemHelper sys    = new SystemHelper(sysName);

            if (!sys.HasValue(util.ProfileNodeId, p_Name))
            {
                sys.SetValueByName(util.ProfileNodeId, p_Name, p_DefaultValue);
            }
            result = sys.ValueEnum <T>(util, p_Name);
            return(result);
        }
Ejemplo n.º 5
0
        static bool RegistryToProfileNode(RegistryKey regKey, IProfileNode node, bool recurse = true)
        {
            if (node == null)
            {
                throw new ArgumentNullException("Argument 'node' cannot be null");
            }
            if (regKey == null)
            {
                return(true);
            }

            Console.WriteLine($"Converting Registry [{regKey.Name}] => {node.GetType().Name}");
            if (String.IsNullOrWhiteSpace(node.Name))
            {
                node.Name = RegKeyToNodeName(regKey);
            }
            foreach (string key in regKey.GetValueNames())
            {
                string        value = regKey.GetValue(key)?.ToString() ?? "";
                IProfileValue pv    = sysHlp.SetValueByName(node.ProfileNodeId, key, value);
            }
            if (recurse)
            {
                foreach (var nodeKey in regKey.GetSubKeyNames())
                {
                    Console.WriteLine($"Updating user settings '{nodeKey}'");
                    if (String.IsNullOrEmpty(nodeKey))
                    {
                        continue;
                    }
                    RegistryKey  subKey   = regKey.OpenSubKey(nodeKey);
                    String       nodeName = RegKeyToNodeName(subKey);
                    IProfileNode subNode  = sysHlp.SubNode(node, nodeName, true);

                    if (!RegistryToProfileNode(subKey, subNode, recurse))
                    {
                        throw new Exception($"Error loading RegistryKey[{regKey.Name}][{subKey.Name}]");
                    }
                }
            }
            return(true);
        }
Ejemplo n.º 6
0
        public void PlatformSettings()
        {
            Console.WriteLine($"TEST: {nameof(PlatformSettings)}");
            SystemHelper      sys   = new SystemHelper();
            AscomPlatformNode ascom = sys.Ascom;

            Assert.IsNotNull(ascom, "ASCOM node is null");
            IProfileNode platform = sys.SubNode(ascom, "Platform", true);

            Assert.IsNotNull(platform, "ASCOM Platform settings not found");
            IEnumerable <string> skeys = sys.SubKeys(platform.ProfileNodeId);

            Assert.IsTrue((skeys?.Count() ?? 0) > 0, "No ASCOM platform settings found");
            Assert.IsTrue(skeys?.Contains("Platform Installation Date") ?? false, "Platform Installation Date setting not found");
            foreach (var key in skeys.OrderBy(t => t))
            {
                string value = sys.KeyValueByPath(platform, key)?.Value;
                Console.WriteLine($"\t{key}: {value}");
            }
        }
Ejemplo n.º 7
0
        public void ConvertBoolValue()
        {
            string nodeName = "Chooser";
            string valKey   = "ASCOM.Simulator.Dome Init";

            Console.WriteLine($"Getting Value for {nodeName}/{valKey}");
            SystemHelper      sys     = new SystemHelper();
            AscomPlatformNode ascom   = sys.Ascom;
            IProfileNode      chooser = sys.SubNode(ascom.ProfileNodeId, nodeName, true);

            string valString = sys.ValueOrDefault(chooser.ProfileNodeId, valKey, null);

            Console.WriteLine($"String Value: {valString}");
            bool tval = bool.Parse(valString);

            Console.WriteLine($"Parsed String Value: {tval}");
            bool val = sys.ValueOrDefault(chooser.ProfileNodeId, valKey, false);

            Console.WriteLine($"Converted Value: {val}");

            Assert.AreEqual(val, tval, "Parsed value does not match converted result");
        }
Ejemplo n.º 8
0
 public int CompareTo(IProfileNode other) => keyComp.Compare(Name, other?.Name);
Ejemplo n.º 9
0
 public bool Equals(IProfileNode other) =>
 keyComp.Equals(Name, other?.Name) &&
 ParentProfileNodeId == other.ParentProfileNodeId;
Ejemplo n.º 10
0
        static void UpdateDataStore()
        {
            Console.WriteLine();
            Console.WriteLine($"Updating LocalSystem meta data");
            sysHlp = new SystemHelper();
            //sysNode = sysHlp.System;
            //raciSettingsNode = sysHlp.Raci;
            //ascomNode = sysHlp.Ascom;
            Console.WriteLine();

            Console.WriteLine($"Loading ASCOM users from local system registry");
            List <String> userIds = AscomUserIds();

            Console.WriteLine($"\t*Found {userIds?.Count ?? 0} ASCOM Users...");
            foreach (String sid in userIds)
            {
                string userName = UserIdToName(sid);
                if (String.IsNullOrWhiteSpace(userName))
                {
                    Console.WriteLine($"Cannot get username for SID[{sid}], skipping");
                    continue;
                }
                Console.WriteLine($"\tUpdating user: {userName} ({sid})");
                UpdateUser(sid);
            }

            Console.WriteLine($"Loading ASCOM Platform Settings");
            RegistryKey       regKey    = Registry.LocalMachine.OpenSubKey("SOFTWARE\\WOW6432Node\\ASCOM");
            AscomPlatformNode ascomRoot = sysHlp.Ascom;

            RegistryToProfileNode(regKey, ascomRoot, false);
            IEnumerable <string> driverTypes   = regKey?.GetSubKeyNames().Where(t => t.EndsWith(" Drivers")) ?? new string[] { };
            IEnumerable <string> ascomSettings = regKey?.GetSubKeyNames().Except(driverTypes) ?? new string[] { };

            foreach (string subkey in ascomSettings)
            {
                Console.WriteLine($"Loading ASCOM Settings Node: {subkey}");
                RegistryKey regSubkey = regKey.OpenSubKey(subkey);
                if (regSubkey == null)
                {
                    throw new Exception($"Failed to open registry subkey[{subkey}] in {regKey.Name}");
                }
                IProfileNode dbNode = sysHlp.SubNode(ascomRoot, subkey, true);
                if (dbNode == null)
                {
                    throw new Exception($"Failed to make subnode[{subkey}] in ASCOM Root");
                }

                RegistryToProfileNode(regSubkey, dbNode, true);
            }

            foreach (string subkey in driverTypes)
            {
                string drvName = subkey;
                Console.WriteLine($"Loading Driver Type: {drvName}");
                RegistryKey drvKey = regKey.OpenSubKey(drvName);
                if (drvKey == null)
                {
                    throw new Exception($"Failed to open registry Driver[{drvName}] in {regKey.Name}");
                }
                DriverTypeNode drvNode = sysHlp.SubNode <DriverTypeNode>(ascomRoot, drvName, true);
                if (drvNode == null)
                {
                    throw new Exception($"Failed to make Driver Node [{drvName}] in ASCOM Root");
                }
                RegistryToProfileNode(drvKey, drvNode, false);
                foreach (string devName in drvKey.GetSubKeyNames())
                {
                    Console.WriteLine($"Loading Device: [{drvName}].{devName}");
                    RegistryKey devKey = drvKey.OpenSubKey(devName);
                    if (devKey == null)
                    {
                        throw new Exception($"Failed to open registry Device[{devName}] in {drvKey.Name}");
                    }
                    AscomDeviceNode devNode = sysHlp.SubNode <AscomDeviceNode>(drvNode, devName, true);
                    if (devNode == null)
                    {
                        throw new Exception($"Failed to make Device Node [{devName}] in Driver[{drvNode.Name}]");
                    }
                    RegistryToProfileNode(devKey, devNode, true);
                }
            }
            Console.WriteLine($"Committing Platform settings to data store");

            Console.WriteLine();
            Console.WriteLine($"ASCOM LocalSystem load complete.");
        }