public void AscomSubValues() { SystemHelper sys = new SystemHelper(); Console.WriteLine($"ASCOM platform SubKeys"); AscomPlatformNode ascom = sys.Ascom; var items = sys.SubValues(ascom.ProfileNodeId, true); foreach (var item in items) { Console.WriteLine($"[{item.Key}]\t{item.Value.Value}"); } }
public void AscomEnumKeyValues() { SystemHelper sys = new SystemHelper(); Console.WriteLine($"ASCOM platform SubKeys"); AscomPlatformNode ascom = sys.Ascom; IOrderedEnumerable <IProfileValue> items = sys .EnumKeyValues(ascom.ProfileNodeId, true) .OrderBy(t => t.ParentProfileNodeId) .ThenBy(t => t.Key); foreach (var item in items) { Console.WriteLine($"[{item.Key}]\t{item.Value}"); } }
public void AscomSubKeys() { SystemHelper sys = new SystemHelper(); Console.WriteLine($"ASCOM platform SubKeys"); AscomPlatformNode ascom = sys.Ascom; Console.WriteLine($"ASCOM System Node: {sys.System}"); Console.WriteLine($"ASCOM Root Node: {ascom.ProfileNodeId}"); IOrderedEnumerable <string> vals = sys.SubKeys(ascom.ProfileNodeId, true); foreach (var path in vals) { Console.Write($"[{path}]\t"); string val = sys.ValueByPath(sys.Ascom, path); Console.WriteLine($"'{val}'"); } }
public void CleanDriverSection() { Console.WriteLine("CleanDriverSection"); SystemHelper sh = new SystemHelper(); AscomPlatformNode ascom = sh.Ascom; foreach (var node in sh.Nodes <ProfileNode>(ascom.ProfileNodeId)) { if (node.Name != "Utilities") { Console.WriteLine($"Removing AscomPlatform subnode: {node.Name}"); sh.DeleteNode(node.ProfileNodeId); } else { Console.WriteLine($"Skipping removal of AscomPlatform subnode: {node.Name}"); } } }
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 void ConvertPlatformDate() { Console.WriteLine($"TEST: {nameof(ConvertPlatformDate)}"); string skey = "Platform Installation Date"; SystemHelper sys = new SystemHelper(); AscomPlatformNode platform = sys.SubNode <AscomPlatformNode>(sys.Ascom, "Platform", true); Assert.IsNotNull(platform, "ASCOM Platform settings not found"); bool hasKey = sys.HasValue(platform.ProfileNodeId, skey); Assert.IsTrue(hasKey, $"ASCOM Platform setting not found: '{skey}'"); String sval = sys.ValueOrDefault(platform.ProfileNodeId, skey, ""); Assert.IsFalse(String.IsNullOrWhiteSpace(sval), $"Setting '{skey}' is empty"); Console.WriteLine($"\tString value: {sval}"); DateTime parsed = DateTime.Parse(sval); Console.WriteLine($"\tParsed value: {parsed}"); DateTime instDate = sys.ValueOrDefault <DateTime>(platform.ProfileNodeId, skey, default(DateTime)); Assert.AreEqual(parsed, instDate, "Converted value does not match parsed value"); Console.WriteLine($"\tDateTime Value: {instDate}"); }
static void Main(string[] args) { bool isSet = false; bool doList = true; bool listValues = true; string sysName = null; string key = null; string val = null; for (int i = 0; i < args.Length; i++) { string arg = args[i]; if (arg == "-s" || arg == "--set") { isSet = true; } else if (arg == "-V" || arg == "--no-values") { listValues = false; } else if (arg == "-L" || arg == "--no-list") { listValues = false; } else if ((arg == "-S" || arg == "--system") && i < args.Length - 1) { sysName = args[++i]; } else if (!arg.StartsWith("-")) { if (key == null) { key = arg; } else if (val == null) { val = arg; } } } if (string.IsNullOrWhiteSpace(sysName)) { sysName = "."; } sysName = sysName.ToLowerInvariant(); sys = new SystemHelper(sysName); Console.WriteLine("RACI Profile Editor"); Console.WriteLine($"System: {sysName}"); if (doList) { using (RaciModel db = new RaciModel()) { Console.WriteLine("Platform:"); Console.WriteLine($"[System]"); Console.WriteLine($"\tName: {sys.Name}"); Console.WriteLine($"\tHostname: {sys.Hostname}"); Console.WriteLine(); Console.WriteLine($"[Users] ({sys.Users.Count()} entries)"); foreach (var user in sys.Users) { DisplayNode(user, 1, listValues); } Console.WriteLine(); var raci = sys.Raci; Console.WriteLine($"[RACI Settings] (Id={raci?.ProfileNodeId ?? 0})"); if (raci != null) { Console.WriteLine($"\tUrlRoot: {sys.SetRaci("UrlRoot", RaciModel.Configuration.RACI.UrlRoot)}"); Console.WriteLine($"\tProductVersion: {sys.SetRaci("tProductVersion", RaciModel.Configuration.RACI.ProductVersion)}"); Console.WriteLine($"\tRestApiVersion: {sys.SetRaci("tRestApiVersion", RaciModel.Configuration.RACI.RestApiVersion)}"); Console.WriteLine($"\tEnableInternalLog: {sys.SetRaci("tEnableInternalLog", RaciModel.Configuration.RACI.EnableInternalLog)}"); Console.WriteLine($"\tLogfile: {sys.SetRaci("Logfile", RaciModel.Configuration.RACI.Logfile)}"); } Console.WriteLine(); AscomPlatformNode ascom = sys.Ascom; Console.WriteLine($"[ASCOM Settings:{ascom.ProfileNodeId}]"); foreach (var snode in sys.Nodes(ascom.ProfileNodeId).Where(t => !t.Name.EndsWith("Drivers"))) { DisplayNode(snode, 1, listValues); } Console.WriteLine(); Console.WriteLine($"[ASCOM Drivers] (PlatformId={ascom.ProfileNodeId})"); foreach (var dnode in sys.Nodes(ascom.ProfileNodeId).Where(t => t.Name.EndsWith("Drivers"))) { DisplayNode(dnode, 1, listValues); } Console.WriteLine(); } } if (isSet) { Console.WriteLine("Set operation: Not implemented"); } }