// Receives a string array and x and y coordinates to create the interactive menu at the x and y coordinates
        public static int Selection(string[] menuItems, int x, int y, string menuMessage)
        {
            var menu = new Menu(menuItems);

            var countOfMenuItems = menuItems.Count();

            var menuPainter = new ConsoleMenuPainter(menu);

            bool done = false;

            Console.WriteLine(menuMessage);
            x = Console.CursorLeft + x;
            y = Console.CursorTop + y + 1;

            do
            {
                menuPainter.Paint(x, y);

                var keyInfo = Console.ReadKey(true);

                menu.SelectedIndex = AlternateInputSelection(ref done, keyInfo, menu.SelectedIndex, countOfMenuItems);
                if (done)
                {
                    return(menu.SelectedIndex);
                }

                switch (keyInfo.Key)
                {
                case ConsoleKey.UpArrow: menu.MoveUp(); break;

                case ConsoleKey.DownArrow: menu.MoveDown(); break;

                case ConsoleKey.Enter:
                    done = true;
                    Console.ResetColor();
                    return(menu.SelectedIndex);

                default:
                    break;
                }
            }while (!done);

            Console.ForegroundColor = ConsoleColor.Cyan;
            //   Console.WriteLine("Selected option: " + (menu.SelectedOption ?? "(nothing)"));
            Console.ReadKey();
            return(9);
        }