Пример #1
0
        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}");
            }
        }
Пример #2
0
        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}");
            }
        }
Пример #3
0
        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}'");
            }
        }
Пример #4
0
        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}");
                }
            }
        }
Пример #5
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}");
            }
        }
Пример #6
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");
        }
Пример #7
0
        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}");
        }
Пример #8
0
        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");
            }
        }