/// <summary> /// Delete subtask. /// </summary> /// <param name="task"></param> /// <param name="number"></param> static void DeleteSubtask(Epic task, int number) { if (number >= 0 && number < task.subTasks.Count) { task.subTasks.RemoveAt(number); } }
/// <summary> /// Add new subtask. /// </summary> /// <param name="task"></param> static void AddSubtask(Epic task) { Console.Write("dd - Введите имя новой задачи: "); string name = Console.ReadLine(); if (name == "") { return; } int option = ChooseWindow("Выберите тип задачи", new string[] { "Story", "Task", "Bug" }); Task newTask; if (option == 0) { newTask = new Story(name, DateTime.Now); } else if (option == 1) { newTask = new Task(name, DateTime.Now); } else { newTask = new Bug(name, DateTime.Now); } task.subTasks.Add(newTask); task.subTasks = task.subTasks.OrderBy((Task t) => t.ToString()).ToList(); }
/// <summary> /// Mod epic task. /// </summary> /// <param name="project"></param> static void ModEpic(Epic task) { while (true) { NewWindow($"Задача \"{task.Name}\"", new string[] { "'A' - добавить подзадачу", "'D' - удалить подзадачу", "'Q' - выйти", "'ENTER или ПРОБЕЛ' - выбрать" }); if (cursor < 0 || cursor >= task.subTasks.Count) { cursor = 0; } for (int i = 0; i < task.subTasks.Count; ++i) { if (cursor == i) { Console.Write("■ "); } else { Console.Write(" "); } Console.WriteLine(task.subTasks[i]); } // Read user input. ConsoleKey key = Console.ReadKey().Key; if (key == ConsoleKey.S || key == ConsoleKey.DownArrow) { cursor++; if (cursor >= task.subTasks.Count) { cursor = 0; } } else if (key == ConsoleKey.W || key == ConsoleKey.UpArrow) { cursor--; if (cursor < 0) { cursor = 0; } } else if (key == ConsoleKey.A) { AddSubtask(task); } else if (key == ConsoleKey.D) { DeleteSubtask(task, cursor); } else if ((key == ConsoleKey.Enter || key == ConsoleKey.Spacebar) && cursor < task.subTasks.Count) { ModTask(task.subTasks[cursor]); } else if (key == ConsoleKey.Q) { break; } } }