/// <summary>
        /// The print at console.
        /// </summary>
        /// <param name="output">
        /// The output.
        /// </param>
        /// <param name="box">
        /// The console box.
        /// </param>
        public static void Print(IConsoleWrapper<ConsoleColor, ConsoleKeyInfo> output, IConsoleBox<ConsoleColor> box)
        {
            output.SetWindowSize(80, 50);
            output.BackgroundColor = box.ColorBackground;
            output.ForegroundColor = box.ColorText;

            output.SetCursorPosition(5, 2);
            output.Write(@"__  __ ___ _   _ _____ ______        _______ _____ ____  _____ ____   ");
            output.SetCursorPosition(5, 3);
            output.Write(@"|  \/  |_ _| \ | | ____/ ___\ \      / / ____| ____|  _ \| ____|  _ \ ");
            output.SetCursorPosition(5, 4);
            output.Write(@"| |\/| || ||  \| |  _| \___ \\ \ /\ / /|  _| |  _| | |_) |  _| | |_) |");
            output.SetCursorPosition(5, 5);
            output.Write(@"| |  | || || |\  | |___ ___) |\ V  V / | |___| |___|  __/| |___|  _ < ");
            output.SetCursorPosition(5, 6);
            output.Write(@"|_|  |_|___|_| \_|_____|____/  \_/\_/  |_____|_____|_|   |_____|_| \_\");

            for (var i = box.StartX; i <= box.StartX + box.SizeX; i++)
            {
                for (var j = box.StartY; j <= box.StartY + box.SizeY; j++)
                {
                    output.SetCursorPosition(i, j);
                    output.Write(" ");
                }
            }

            output.SetCursorPosition(box.StartX, box.StartY);
            output.Write("╔");
            output.SetCursorPosition(box.StartX, box.StartY + box.SizeY);
            output.Write("╚");
            output.SetCursorPosition(box.StartX + box.SizeX, box.StartY);
            output.Write("╗");
            output.SetCursorPosition(box.StartX + box.SizeX, box.StartY + box.SizeY);
            output.Write("╝");

            for (var i = box.StartX + 1; i < box.StartX + box.SizeX; i++)
            {
                output.SetCursorPosition(i, box.StartY);
                output.Write("═");
                output.SetCursorPosition(i, box.StartY + box.SizeY);
                output.Write("═");
            }

            for (var i = box.StartY + 1; i < box.StartY + box.SizeY; i++)
            {
                output.SetCursorPosition(box.StartX, i);
                output.Write("║");
                output.SetCursorPosition(box.StartX + box.SizeX, i);
                output.Write("║");
            }

            if (box.Text != string.Empty)
            {
                var rows = box.Text.SplitBy(box.SizeX - 1);
                var cnt = 0;

                foreach (var row in rows)
                {
                    output.SetCursorPosition(box.StartX + 1, box.StartY + 1 + cnt);
                    output.Write(row);
                    cnt++;
                }
            }

            output.ResetColor();
        }