コード例 #1
0
ファイル: StarConsole.cs プロジェクト: sibanez/MenuConsoleApp
        public static void Star(string[] args)
        {
            Console.BufferHeight = 1000;
            Console.BufferWidth  = 1000;

            ConsoleHelper.SetConsoleFont(9);


            var controlers = ControlersFactory.CreateControlers();

            var consoleControlers = controlers as IConsoleControler[] ?? controlers.ToArray();
            var menus             =
                consoleControlers.Select(c => c.GetType().GetCustomAttributes(typeof(DescriptionAttribute), false))
                .Select(d => ((DescriptionAttribute)d[0]).Description)
                .ToArray();


            var menu = new ConsoleListBox();

            menu.Changed += (o, eventArgs) =>
            {
                menu.CleanUp();



                foreach (var consoleControler in
                         consoleControlers.Select(
                             consoleControler =>
                             new
                {
                    consoleControler,
                    ca =
                        consoleControler.GetType().GetCustomAttributes(typeof(DescriptionAttribute), false)
                })
                         .SelectMany(
                             @t =>
                             @t.ca.OfType <DescriptionAttribute>()
                             .Select(ss => ss.Description)
                             .Where(descripcion => descripcion == o), (@t, descripcion) => @t.consoleControler))
                {
                    try
                    {
                        consoleControler.Run();
                    }
                    catch (Exception exception)
                    {
                        Console.WriteLine("Error ejecutando {0}", o);
                        Console.WriteLine(exception);
                    }
                }


                Console.Write("You chose " + o + ". Press any key to exit", 21, 22, ConsoleColor.Black,
                              ConsoleColor.White);
                Console.ReadKey();

                menu.Start(menus);
            };
            menu.Start(menus);
        }
コード例 #2
0
        public void ControlersFactoryCreateControlersTest()
        {
            var result = ControlersFactory.CreateControlers();

            Assert.AreEqual(1, result.Count());
        }