Пример #1
0
        public static void editTasksAtTableByStatus(DB_impl DB, Task_manager_impl tm, ConsoleIO_impl IO)
        {
            IO.clear();
            string menu = "Редактировать:\n"
                          + "1)Выполненные\n"
                          + "2)Не выполненные\n"
                          + "[Назад - esc]";

            IO.print(menu);
            ConsoleKeyInfo cki;
            int            answer = -1;

            do
            {
                cki = IO.getKeyFromUser();
                if (cki.Key == ConsoleKey.Escape)
                {
                    break;
                }
                bool v = int.TryParse(cki.Key.ToString().Substring(1), out answer);
                if (!v || answer < 1 || answer > 2)
                {
                    IO.clear(); IO.print("Ошибка! Неверное значение.\n" + menu);
                }
            } while (answer < 1 || answer > 2);
            IO.clear();
            switch (answer)
            {
            case 1:
                tm = DB.getAllTasks();
                tm.findTasksByCompletion(true);
                tm.getTasks().ForEach(e => editSingleTask(e, tm, IO));
                DB.updateTasks(tm);
                IO.clear();
                IO.print("Редактирование выполнено успешно. Нажмите любую клавишу для возврата.");
                IO.getKeyFromUser();
                throw new ReturnToTableMenu();
                break;

            case 2:
                tm = DB.getAllTasks();
                tm.findTasksByCompletion(false);
                tm.getTasks().ForEach(e => editSingleTask(e, tm, IO));
                DB.updateTasks(tm);
                IO.clear();
                IO.print("Редактирование выполнено успешно. Нажмите любую клавишу для возврата.");
                IO.getKeyFromUser();
                throw new ReturnToTableMenu();
                break;

            default:
                throw new ReturnToTableMenu();
                break;
            }
        }
Пример #2
0
        public static void deleteTasksFromTableById(DB_impl DB, Task_manager_impl tm, ConsoleIO_impl IO)
        {
            IO.clear();
            IO.print("Список " + DB.MainTable);
            tm = DB.getAllTasks();
            IO.printTable(new string[] { "id", "[X]/[ ]", "Дата", "Задание" }, tm.getTaskManagerDataGrid());
            IO.print("Выберите № задачи для удаления:\n[Назад - esc]");
            int            countTasks = tm.getTasks().Count;
            ConsoleKeyInfo cki;
            int            id = -1;

            do
            {
                string int_ans = "";
                cki = IO.getKeyFromUser();
                while (cki.Key != ConsoleKey.Enter)
                {
                    if (cki.Key == ConsoleKey.Escape)
                    {
                        throw new ReturnToTableMenu();
                    }
                    int_ans += cki.KeyChar;
                    cki      = IO.getKeyFromUser();
                }
                bool v = int.TryParse(int_ans, out id);

                if (!v || id < 0)
                {
                    id = -1; IO.clear();
                    IO.printTable(new string[] { "id", "[X]/[ ]", "Дата", "Задание" }, tm.getTaskManagerDataGrid());
                    IO.print("Ошибка! Неверное значение.\n");
                    IO.print("Выберите № задачи для удаления:\n[Назад - esc]");
                }

                tm.findTaskById(id);
                if (tm.getTasks().Count == 0)
                {
                    tm = DB.getAllTasks();
                    id = -1; IO.clear();
                    IO.printTable(new string[] { "id", "[X]/[ ]", "Дата", "Задание" }, tm.getTaskManagerDataGrid());
                    IO.print("Ошибка! Такого номера задания не существует.\n");
                    IO.print("Выберите № задачи для удаления:\n[Назад - esc]");
                }
            } while (id < 0);
            IO.clear();
            IO.printTable(new string[] { "id", "[X]/[ ]", "Дата", "Задание" }, tm.getTaskManagerDataGrid());
            IO.print("Удаление задачи. Для подтверждения нажмите Enter");
            if (IO.getKeyFromUser().Key == ConsoleKey.Enter)
            {
                DB.deleteTasks(tm);
                IO.print("Удаление выполнено успешно. Нажмите любую клавишу для возврата.");
                IO.getKeyFromUser();
            }
            throw new ReturnToTableMenu();
        }
Пример #3
0
        internal bool deleteTasks(Task_manager_impl tm)
        {
            List <string> query = new List <string>();

            for (int i = 0; i < tm.getTasks().Count; i++)
            {
                query.Add("DELETE FROM " + mainTable + " WHERE task_id = " + tm.getTasks()[i].Task_id + ";");
            }
            query.ForEach(e => DB.executeQuery(e, false));

            return(true);
        }
Пример #4
0
        public static void editTasksAtTableByText(DB_impl DB, Task_manager_impl tm, ConsoleIO_impl IO)
        {
            IO.clear();
            IO.print("Список " + DB.MainTable);
            tm = DB.getAllTasks();
            IO.printTable(new string[] { "id", "[X]/[ ]", "Дата", "Задание" }, tm.getTaskManagerDataGrid());
            IO.print("Для редактирования по тексту введите текст\n"
                     + "[Назад - esc]");
            string         text;
            ConsoleKeyInfo cki;

            while (true)
            {
                text = "";
                cki  = IO.getKeyFromUser();
                while (cki.Key != ConsoleKey.Enter)
                {
                    if (cki.Key == ConsoleKey.Escape)
                    {
                        throw new ProcessToShowTable();
                    }
                    text += cki.KeyChar;
                    cki   = IO.getKeyFromUser();
                }
                tm.findTasksByText(text);
                if (tm.getTasks().Count == 0)
                {
                    tm = DB.getAllTasks();
                    IO.clear();
                    IO.printTable(new string[] { "id", "[X]/[ ]", "Дата", "Задание" }, tm.getTaskManagerDataGrid());
                    IO.print("Не найдено совпадений! Введите текст еще раз!");
                }
                else
                {
                    break;
                }
            }
            IO.clear();
            tm.getTasks().ForEach(e => editSingleTask(e, tm, IO));
            DB.updateTasks(tm);
            IO.print("Редактирование выполнено успешно. Нажмите любую клавишу для возврата.");
            IO.getKeyFromUser();
            throw new ReturnToTableMenu();
        }
Пример #5
0
        public bool updateTasks(Task_manager_impl tm)
        {
            List <string> query = new List <string>();

            for (int i = 0; i < tm.getTasks().Count; i++)
            {
                if (tm.getTasks()[i].Task_id == -1)
                {
                    query.Add("INSERT INTO " + mainTable + " VALUES('" + tm.getTasks()[i].Task_text + "','"
                              + tm.getTasks()[i].Task_date.ToString() + "'," + (tm.getTasks()[i].Task_completion?1:0) + ")");
                }
                else
                {
                    query.Add("UPDATE " + mainTable + " SET task_text = '" + tm.getTasks()[i].Task_text
                              + "', task_date = '" + tm.getTasks()[i].Task_date.ToString()
                              + "', task_completion = " + (tm.getTasks()[i].Task_completion ? 1 : 0)
                              + " WHERE task_id = " + tm.getTasks()[i].Task_id + ";");
                }
            }
            query.ForEach(e => DB.executeQuery(e, false));

            return(true);
        }
Пример #6
0
        public static void editTasksAtTableByDate(DB_impl DB, Task_manager_impl tm, ConsoleIO_impl IO)
        {
            IO.clear();
            IO.print("Список " + DB.MainTable);
            tm = DB.getAllTasks();
            IO.printTable(new string[] { "id", "[X]/[ ]", "Дата", "Задание" }, tm.getTaskManagerDataGrid());
            IO.print("Для редактирования по дате введите дату\n"
                     + "[Назад - esc]");
            string         date_string;
            ConsoleKeyInfo cki;
            DateTime       date = DateTime.Now;

            while (true)
            {
                while (true)
                {
                    date_string = "";
                    cki         = IO.getKeyFromUser();
                    while (cki.Key != ConsoleKey.Enter)
                    {
                        if (cki.Key == ConsoleKey.Escape)
                        {
                            throw new ProcessToShowTable();
                        }
                        date_string += cki.KeyChar;
                        cki          = IO.getKeyFromUser();
                    }

                    date_string = date_string.Replace(".", "/").Replace(",", "/")
                                  .Replace(":", "/").Replace(";", "/").Replace("-", "/");
                    if (new Regex(@"\d{2,2}/\d{2,2}/\d{4,4}").IsMatch(date_string))
                    {
                        date_string = date_string.Substring(6) + "/" + date_string.Substring(3, 2) + "/" + date_string.Substring(0, 2);
                    }

                    date = new DateTime();
                    if (!(new Regex(@"\d{4,4}/\d{2,2}/\d{2,2}").IsMatch(date_string)) ||
                        !DateTime.TryParse(date_string, out date))
                    {
                        IO.clear();
                        IO.printTable(new string[] { "id", "[X]/[ ]", "Дата", "Задание" }, tm.getTaskManagerDataGrid());
                        IO.print("Ошибка! Неверный формат даты\nДля редактирования по дате введите дату\n"
                                 + "[Назад - esc]");
                    }
                    else
                    {
                        break;
                    }
                }
                tm.findTasksByDate(date);
                if (tm.getTasks().Count == 0)
                {
                    tm = DB.getAllTasks();
                    IO.clear();
                    IO.printTable(new string[] { "id", "[X]/[ ]", "Дата", "Задание" }, tm.getTaskManagerDataGrid());
                    IO.print("Не найдено совпадений! Введите дату еще раз!");
                }
                else
                {
                    break;
                }
            }

            IO.clear();
            tm.getTasks().ForEach(e => editSingleTask(e, tm, IO));
            DB.updateTasks(tm);
            IO.print("Редактирование выполнено успешно. Нажмите любую клавишу для возврата.");
            IO.getKeyFromUser();
            throw new ReturnToTableMenu();
        }