Example #1
0
        private void Man(string[] args)
        {
            switch (args.Length)
            {
            case 1:
                if (args[0].ToLower().Equals("list"))
                {
                    foreach (string key in Documentation.Keys)
                    {
                        WriteLineColor(key, Cyan);
                    }
                    return;
                }
                string topic = args[0];
                if (Documentation.ContainsKey(topic))
                {
                    try
                    {
                        ManualObject obj = JsonConvert.DeserializeObject <ManualObject>(Documentation[topic]);
                        Console.WriteLine("7Sharp Manual");
                        Console.WriteLine();
                        Console.WriteLine(obj.title);
                        Console.WriteLine();
                        Console.WriteLine($"{new string('=', Console.WindowWidth)}\n");
                        foreach (ManualSection s in obj.sections)
                        {
                            Console.WriteLine(s.header);
                            Console.WriteLine();
                            foreach (ManualTextComponent c in s.text)
                            {
                                if (c.color == null)
                                {
                                    c.color = Gray.ToString();
                                }
                                if (c.back == null)
                                {
                                    c.back = Black.ToString();
                                }
                                Console.BackgroundColor = (ConsoleColor)Enum.Parse(typeof(ConsoleColor), c.back);
                                Console.ForegroundColor = (ConsoleColor)Enum.Parse(typeof(ConsoleColor), c.color);
                                Console.Write(c.text);
                                Console.ResetColor();
                            }
                            Console.WriteLine($"\n{new string('-', Console.WindowWidth)}\n");
                        }
                    }
                    catch (Exception e)
                    {
                        Utils.PrintError(e);
                    }
                }
                else
                {
                    WriteLineColor("Topic not found!\nType man list for a list of topics!", Red);
                    return;
                }
                break;

            default:
                WriteLineColor("Invalid syntax! man <topic>\nType man list for a list of topics!", Red);
                break;
            }
        }