Example #1
0
        /// <summary>
        /// Выводит список существующих файлов
        /// </summary>
        public void Write_FileList(bool del = false)
        {
            BinFile       file  = new BinFile();
            List <string> files = file.Load_FileList();

            Console.SetCursorPosition(30, 3);
            Frames frame = new Frames();
            Input  inp   = new Input();

            frame.Continuous(30, "Выберете файл", files.ToArray());
            int        y   = 5;
            int        x   = 30;
            int        i   = 0;
            ConsoleKey?key = null;

            frame.Choice(x, y, ConsoleColor.Green, 30);
            while ((key != ConsoleKey.Enter) && (key != ConsoleKey.Escape))
            {
                key = inp.InputKey(ConsoleKey.DownArrow, ConsoleKey.UpArrow, ConsoleKey.Enter, ConsoleKey.Escape);
                switch (key)
                {
                case ConsoleKey.DownArrow:

                    if ((y / 2) < files.Count + 1)
                    {
                        frame.ContinuousChoice(x, y, ConsoleColor.White, 30);
                        y += 2;
                        ++i;
                        frame.Choice(x, y, ConsoleColor.Green, 30);
                        if (y == 7)
                        {
                            Console.SetCursorPosition(x, 5);
                            string line = new string('═', 30);
                            Console.WriteLine($"╠{line}╣");
                        }
                    }
                    break;

                case ConsoleKey.UpArrow:
                    if (y != 5)
                    {
                        frame.ContinuousChoice(x, y, ConsoleColor.White, 30);
                        y -= 2;
                        --i;
                        frame.Choice(x, y, ConsoleColor.Green, 30);

                        if ((y / 2) == files.Count)
                        {
                            Console.SetCursorPosition(x, (files.Count + 1) * 2 + 3);
                            string line = new string('═', 30);
                            Console.WriteLine($"╚{line}╝");
                        }
                    }
                    break;

                case ConsoleKey.Enter:
                    if ((del) && (frame.Call_MassageBox(30, 3, "Удалить файл?")))
                    {
                        File.Delete($"C:/C#/RunDll/XMLfiles/{files[i]}.xml");
                    }
                    else
                    {
                        BinFile.fileName = files[i];
                    }
                    break;
                }
            }
        }
Example #2
0
        private string ChoiceDeveloper(int readPosY)
        {
            BinFile file = new BinFile();

            Console.SetCursorPosition(80, 0);
            List <string> developerNames = file.GetDevNames();
            Frames        frame          = new Frames();

            frame.Continuous(25, "Выберите девелопера", developerNames.ToArray());
            ushort x = 80;
            ushort y = 2;
            int    i = 0;

            frame.Choice(x, y, ConsoleColor.Green, 25);
            Input      inp = new Input();
            ConsoleKey?key = null;

            while (key != ConsoleKey.Enter)
            {
                key = inp.InputKey(ConsoleKey.Escape, ConsoleKey.DownArrow, ConsoleKey.UpArrow, ConsoleKey.Enter);
                switch (key)
                {
                case ConsoleKey.DownArrow:
                    if ((y / 2) < developerNames.Count - 1)
                    {
                        i++;
                        frame.ContinuousChoice(x, y, ConsoleColor.White, 25);
                        y += 2;
                        frame.Choice(x, y, ConsoleColor.Green, 25);
                        if (y == 4)
                        {
                            Console.SetCursorPosition(x, 2);
                            string line = new string('═', 25);
                            Console.WriteLine($"╠{line}╣");
                        }
                    }
                    break;

                case ConsoleKey.UpArrow:
                    if ((y / 2) >= 2)
                    {
                        i--;
                        frame.ContinuousChoice(x, y, ConsoleColor.White, 25);
                        y -= 2;
                        //Console.WriteLine(y);
                        //Console.WriteLine(developers.Count);
                        frame.Choice(x, y, ConsoleColor.Green, 25);
                        if ((y / 2) == developerNames.Count - 2)
                        {
                            Console.SetCursorPosition(x, (developerNames.Count) * 2);
                            string line = new string('═', 25);
                            Console.WriteLine($"╚{line}╝");
                        }
                    }
                    break;

                case ConsoleKey.Enter:
                    Console.SetCursorPosition(27, readPosY);
                    Console.Write(developerNames[i]);
                    break;
                }
            }
            return(developerNames[i]);
        }