コード例 #1
0
 /// <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);
     }
 }
コード例 #2
0
        /// <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();
        }
コード例 #3
0
        /// <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;
                }
            }
        }