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); } }
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); }
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); }
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); }
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); }
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}"); } }
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"); }
public int CompareTo(IProfileNode other) => keyComp.Compare(Name, other?.Name);
public bool Equals(IProfileNode other) => keyComp.Equals(Name, other?.Name) && ParentProfileNodeId == other.ParentProfileNodeId;
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."); }