Ejemplo n.º 1
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]);
        }
Ejemplo n.º 2
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;
                }
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Выводит экранное меню
        /// </summary>
        public void MainMenu()
        {
            Console.CursorVisible = false;
            Frames frame = new Frames();
            Input  inp   = new Input();
            Tables table = new Tables();
            //table.LoadAll();

            ConsoleKey?mKey = null;
            int        main_x = 30, main_y = 3;
            bool       canСontinue = true;

            frame.Menu(30, 3, 30, "Ввод базы данных", "Вывод базы данных", "Выбор файла", "Выход из программы");
            frame.Choice(main_x, main_y, col, 30);
            while (canСontinue)
            {
                mKey = inp.InputKey(ConsoleKey.DownArrow, ConsoleKey.UpArrow, ConsoleKey.Enter);

                if ((mKey == ConsoleKey.DownArrow) & (main_y != 12))
                {
                    frame.Choice(main_x, main_y, ConsoleColor.White, 30);
                    main_y += 3;
                    frame.Choice(main_x, main_y, col, 30);
                }
                else if ((mKey == ConsoleKey.UpArrow) & (main_y > 3))
                {
                    frame.Choice(main_x, main_y, ConsoleColor.White, 30);
                    main_y -= 3;
                    frame.Choice(main_x, main_y, col, 30);
                }
                else if (mKey == ConsoleKey.Enter)
                {
                    ConsoleKey?sKey = null;
                    int        x = 30, y = 3;
                    switch (main_y)
                    {
                    // Выбор файла для хранения данных
                    case 9:
                        Console.Clear();
                        frame.Menu(30, 3, 30, "Выброр существующего файла", "Создание нового файла", "Удаление файла");
                        ConsoleKey?key = null;
                        y = 3;
                        frame.Choice(30, y, ConsoleColor.Green, 30);
                        while (key != ConsoleKey.Escape)
                        {
                            key = inp.InputKey(ConsoleKey.DownArrow, ConsoleKey.UpArrow, ConsoleKey.Enter, ConsoleKey.Escape);
                            switch (key)
                            {
                            case ConsoleKey.DownArrow:
                                if (y != 9)
                                {
                                    frame.Choice(30, y, ConsoleColor.White, 30);
                                    y += 3;
                                    frame.Choice(30, y, ConsoleColor.Green, 30);
                                }
                                break;

                            case ConsoleKey.UpArrow:
                                if (y != 3)
                                {
                                    frame.Choice(30, y, ConsoleColor.White, 30);
                                    y -= 3;
                                    frame.Choice(30, y, ConsoleColor.Green, 30);
                                }
                                break;

                            case ConsoleKey.Enter:
                                switch (y)
                                {
                                case 3:
                                    Console.Clear();
                                    table.Write_FileList();
                                    break;

                                case 6:
                                    Console.Clear();
                                    table.CreateFile();
                                    break;

                                case 9:
                                    Console.Clear();
                                    table.Write_FileList(true);
                                    break;
                                }
                                Console.Clear();
                                frame.Menu(30, 3, 30, "Выброр существующего файла", "Создание нового файла", "Удаление файла");
                                frame.Choice(30, y, ConsoleColor.Green, 30);
                                break;
                            }
                        }

                        Console.Clear();
                        frame.Menu(30, 3, 30, "Ввод базы данных", "Вывод базы данных", "Выбор файла", "Выход из программы");
                        frame.Choice(main_x, main_y, col, 30);
                        break;

                    // Выход из программы
                    case 12:
                        canСontinue = false;
                        break;

                    default:
                        Console.Clear();
                        frame.Menu(30, 3, 18, "Таблица посёлков", "Таблица домов", "Таблица девелоперов");
                        frame.Choice(x, y, col, 18);
                        while (sKey != ConsoleKey.Escape)
                        {
                            sKey = inp.InputKey(ConsoleKey.DownArrow, ConsoleKey.UpArrow, ConsoleKey.Enter, ConsoleKey.Escape);

                            switch (sKey)
                            {
                            case ConsoleKey.DownArrow:
                                if (y != 9)
                                {
                                    frame.Choice(x, y, ConsoleColor.White, 18);
                                    y += 3;
                                    frame.Choice(x, y, col, 18);
                                }
                                break;

                            case ConsoleKey.UpArrow:
                                if (y > 3)
                                {
                                    frame.Choice(x, y, ConsoleColor.White, 18);
                                    y -= 3;
                                    frame.Choice(x, y, col, 18);
                                }
                                break;

                            case ConsoleKey.Enter:
                                try
                                {
                                    switch (y)
                                    {
                                    case 3:
                                        if (main_y == 3)
                                        {
                                            table.ReadVellage();
                                        }
                                        else if (main_y == 6)
                                        {
                                            table.WriteVillage();
                                        }
                                        break;

                                    case 6:
                                        if (main_y == 3)
                                        {
                                            table.ReadHouse();
                                        }
                                        else if (main_y == 6)
                                        {
                                            table.WriteHouse();
                                        }
                                        break;

                                    case 9:
                                        if (main_y == 3)
                                        {
                                            table.ReadDeveloper();
                                        }
                                        else if (main_y == 6)
                                        {
                                            table.WriteDeveloper();
                                        }
                                        break;
                                    }
                                }
                                catch (Exception)
                                {
                                    ConsoleKey back;
                                    //if(table.fileName == "")
                                    Console.Clear();
                                    frame.Menu(30, 5, 31, "Ошибка! Имя файла не выбранно");
                                    //frame.Menu(30, 5, 31, e);
                                    throw;
                                    back = inp.InputKey(ConsoleKey.Escape);
                                    if (back == ConsoleKey.Escape)
                                    {
                                        Console.Clear();
                                        frame.Menu(30, 3, 18, "Таблица посёлков", "Таблица домов", "Таблица девелоперов");
                                    }
                                    //else
                                }
                                //y = 0;
                                frame.Choice(x, y, col, 18);

                                break;

                            case ConsoleKey.Escape:
                                Console.Clear();
                                frame.Menu(30, 3, 30, "Ввод базы данных", "Вывод базы данных", "Выбор файла", "Выход из программы");
                                //main_y = 3;
                                frame.Choice(main_x, main_y, col, 30);
                                break;
                            }
                        }
                        break;
                    }
                }
            }
        }