Ejemplo n.º 1
0
        /// <summary>
        /// Создаёт новый файл с введённым пользователем именем
        /// </summary>
        public void Create_File()
        {
            Frames  frame = new Frames();
            BinFile file  = new BinFile();

            Console.SetCursorPosition(30, 9);
            frame.Continuous(34, "Введите имя файла", "");
            Input inp         = new Input();
            bool  canСontinue = true;

            while (canСontinue)
            {
                Console.SetCursorPosition(32, 12);
                Console.CursorVisible = true;
                if (inp.ReadValid(ref BinFile.fileName, 31))
                {
                    if (!File.Exists($"C:/C#/RunDll/XMLfiles/{BinFile.fileName}.xml"))
                    {
                        Console.CursorVisible = false;
                        try
                        {
                            file.CreateFile(BinFile.fileName);
                            canСontinue = false;
                        }
                        catch (Exception)
                        {
                            Console.CursorVisible = false;
                            string clear = new string(' ', 32);
                            Console.SetCursorPosition(32, 12);
                            Console.Write(clear);
                            Console.SetCursorPosition(32, 12);
                            Console.Write("Недопустимые знаки в имени файла");
                            Thread.Sleep(600);
                            Console.SetCursorPosition(32, 12);
                            Console.Write(clear);
                        }
                    }
                    else
                    {
                        Console.CursorVisible = false;
                        string clear = new string(' ', 28);
                        Console.SetCursorPosition(32, 12);
                        Console.Write(clear);
                        Console.SetCursorPosition(32, 12);
                        Console.Write("Файл уже существует");
                        Thread.Sleep(600);
                        Console.SetCursorPosition(32, 12);
                        Console.Write(clear);
                    }
                }
                else
                {
                    canСontinue = false;
                }
            }
        }
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
        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.º 4
0
        /// <summary>
        /// Выводит таблицу, внутри которой считывает данные о посёлке
        /// </summary>
        public void ReadVellage()
        {
            Console.Clear();
            BinFile file = new BinFile();

            file.Load_DataBase();
            Frames frame = new Frames();

            if (BinFile.developers.Count == 0)
            {
                Console.SetCursorPosition(14, 6);
                frame.Continuous(50, "Ошибка!", "Необходимо сначала заполнить таблицу девелоперов");
                Console.ReadKey(true);
            }
            else
            {
                //file.Load_DataBase();
                Input          inp         = new Input();
                List <Village> _villages   = new List <Village>();
                bool           canСontinue = true;

                Console.WriteLine("╔════════════════════════╤═══════════════════════╤═══════════════╤═══════════╗");
                Console.WriteLine("║    Назвение посёлка    │       Девелопер       │ Площадь в м^2 │ Население ║");
                Console.WriteLine("╠════════════════════════╪═══════════════════════╪═══════════════╪═══════════╣");
                Console.WriteLine("║                        │                       │               │           ║");
                Console.Write("╚════════════════════════╧═══════════════════════╧═══════════════╧═══════════╝");

                while (canСontinue)
                {
                    Village vill = new Village("", "", 0, 0);
                    Console.SetCursorPosition(2, Console.CursorTop - 1);
                    Console.CursorVisible = true;
                    if (inp.ReadValid(ref vill.name, 22))
                    {
                        Console.SetCursorPosition(27, Console.CursorTop);
                        Console.CursorVisible = false;
                        vill.dev = ChoiceDeveloper(Console.CursorTop);
                        Console.CursorVisible = true;
                        Console.SetCursorPosition(51, Console.CursorTop);
                        inp.ReadValid(ref vill.area, 13);
                        Console.SetCursorPosition(67, Console.CursorTop);
                        inp.ReadValid(ref vill.people, 9);
                        Console.CursorVisible = false;
                        Console.SetCursorPosition(0, Console.CursorTop + 1);
                        Console.WriteLine("╟────────────────────────┼───────────────────────┼───────────────┼───────────╢");
                        Console.WriteLine("║                        │                       │               │           ║");
                        Console.Write("╚════════════════════════╧═══════════════════════╧═══════════════╧═══════════╝");
                        _villages.Add(vill);
                    }
                    else
                    {
                        canСontinue = false;
                        if (frame.Call_MassageBox(30, 10, "Cозранить изменения?"))
                        {
                            file.SaveInFile(_villages, FileMode.Append);
                        }
                    }
                }
            }
            Console.Clear();
            frame.Menu(30, 3, 18, "Таблица посёлков", "Таблица домов", "Таблица девелоперов");
        }