Пример #1
0
        public void ManyToOneDependencyComplex_ReturnSequenceList()
        {
            TasksPlanner tasks    = new TasksPlanner();
            string       strTasks = @"a =>
                                b => a
                                c => a
                                d => j
                                e => b
                                f => c
                                g => c
                                h => d
                                i => f
                                j => a";
            var          result   = tasks.Sequence(strTasks);

            Assert.AreEqual(10, result.Count);
            Assert.AreEqual("a", result[0]);
            Assert.AreEqual("b", result[1]);
            Assert.AreEqual("e", result[2]);
            Assert.AreEqual("c", result[3]);
            Assert.AreEqual("g", result[4]);
            Assert.AreEqual("j", result[5]);
            Assert.AreEqual("d", result[6]);
            Assert.AreEqual("h", result[7]);
            Assert.AreEqual("f", result[8]);
            Assert.AreEqual("i", result[9]);
        }
Пример #2
0
        public void EmptyCase_ReturnEmptyList()
        {
            TasksPlanner tasks  = new TasksPlanner();
            var          result = tasks.Sequence(string.Empty);

            Assert.AreEqual(0, result.Count);
        }
Пример #3
0
        public void SimpleCase_ReturnSequenceList()
        {
            TasksPlanner tasks  = new TasksPlanner();
            var          result = tasks.Sequence("a =>");

            Assert.AreEqual(1, result.Count);
            Assert.AreEqual("a", result[0]);
        }
Пример #4
0
        public void SelfDependency_ReturnError()
        {
            TasksPlanner tasks    = new TasksPlanner();
            string       strTasks = @"a =>
                                b =>
                                c => c";

            tasks.Sequence(strTasks);
        }
Пример #5
0
        public void OneToManyCircularDependency_ReturnError()
        {
            TasksPlanner tasks    = new TasksPlanner();
            string       strTasks = @"a => d 
                                a => c 
                                b => a
                                c => b
                                d => c";

            tasks.Sequence(strTasks);
        }
Пример #6
0
        public void CircularDependency_ReturnError()
        {
            TasksPlanner tasks    = new TasksPlanner();
            string       strTasks = @"a =>
                                b => c
                                c => f
                                d => a
                                e =>
                                f => b";

            tasks.Sequence(strTasks);
        }
Пример #7
0
        public void DependentCase_ReturnSequenceList()
        {
            TasksPlanner tasks    = new TasksPlanner();
            string       strTasks = @"a =>
                                b => c
                                c =>";
            var          result   = tasks.Sequence(strTasks);

            Assert.AreEqual(3, result.Count);
            Assert.AreEqual("a", result[0]);
            Assert.AreEqual("c", result[1]);
            Assert.AreEqual("b", result[2]);
        }
Пример #8
0
        public void OneToManyDependencyComplex_ReturnSequenceList()
        {
            TasksPlanner tasks    = new TasksPlanner();
            string       strTasks = @"a => d
                                a => b 
                                a => c 
                                b => 
                                c => b
                                d =>";
            var          result   = tasks.Sequence(strTasks);

            Assert.AreEqual(4, result.Count);
            Assert.AreEqual("d", result[0]);
            Assert.AreEqual("b", result[1]);
            Assert.AreEqual("c", result[2]);
            Assert.AreEqual("a", result[3]);
        }
Пример #9
0
        public void ManyToOneDependencySimple_ReturnSequenceList()
        {
            TasksPlanner tasks    = new TasksPlanner();
            string       strTasks = @"a =>
                                b => a
                                c => a
                                d => a
                                e => a
                                f => a";
            var          result   = tasks.Sequence(strTasks);

            Assert.AreEqual(6, result.Count);
            Assert.AreEqual("a", result[0]);
            Assert.AreEqual("b", result[1]);
            Assert.AreEqual("c", result[2]);
            Assert.AreEqual("d", result[3]);
            Assert.AreEqual("e", result[4]);
            Assert.AreEqual("f", result[5]);
        }
Пример #10
0
        public void DependentCase2_ReturnSequenceList()
        {
            TasksPlanner tasks    = new TasksPlanner();
            string       strTasks = @"a =>
                                b => c
                                c => f
                                d => a
                                e => b
                                f =>";
            var          result   = tasks.Sequence(strTasks);

            Assert.AreEqual(6, result.Count);
            Assert.AreEqual("a", result[0]);
            Assert.AreEqual("d", result[1]);
            Assert.AreEqual("f", result[2]);
            Assert.AreEqual("c", result[3]);
            Assert.AreEqual("b", result[4]);
            Assert.AreEqual("e", result[5]);
        }
Пример #11
0
        static void Main(string[] args)
        {
            List <MyTaskClass> tasks    = new List <MyTaskClass>();
            TasksPlanner       TPlanner = new TasksPlanner(tasks);
            TasksSaver         ts       = new TasksSaver(TPlanner.Tasks, "planner.dat");
            char menuOption             = ' ';

            while (menuOption != '0')
            {
                Console.Clear();
                Console.WriteLine("Выберете пункт меню:");
                Console.WriteLine("1. Просмотр списка задач");
                Console.WriteLine("2. Добавление задачи");
                Console.WriteLine("3. Удаление задачи");
                Console.WriteLine("4. Редактирование задачи");
                Console.WriteLine("5. Сохранение списка задач");
                Console.WriteLine("6. Загрузка списка задач из файла");
                Console.WriteLine("0. Выход");
                try
                {
                    menuOption = Convert.ToChar(Console.ReadLine());
                }
                catch (System.FormatException e)
                {
                    if (e.Source != null)
                    {
                        Console.WriteLine("Выберете пункт меню с 0 по 6");
                    }
                }
                switch (menuOption)
                {
                case '1':
                    Console.Clear();
                    bool taskIsPresent = false;
                    foreach (MyTaskClass task in TPlanner.Tasks)
                    {
                        Console.WriteLine("*************************");
                        Console.WriteLine(task);
                        taskIsPresent = true;
                    }
                    if (taskIsPresent == false)
                    {
                        Console.WriteLine("У вас еще нет задач");
                    }
                    Console.ReadLine();
                    break;

                case '2':
                    Console.Clear();
                    TPlanner.AddTask();
                    break;

                case '3':
                    Console.Clear();
                    Console.WriteLine("Введите номер удаляемой задачи");
                    int removeNumber = Convert.ToInt32(Console.ReadLine());
                    TPlanner.DeleteTask(removeNumber);
                    break;

                case '4':
                    Console.Clear();
                    Console.WriteLine("Введите номер задачи для редактирования");
                    int editNumber = Convert.ToInt32(Console.ReadLine());
                    TPlanner.SearchAndEditTask(editNumber);
                    break;

                case '5':
                    Console.Clear();
                    ts.Tasks = TPlanner.Tasks;
                    ts.SavingToFile();
                    break;

                case '6':
                    Console.Clear();
                    TPlanner.Tasks = ts.DownloadFromFile();
                    TPlanner.Tasks = TPlanner.Tasks.Where(x => x.CompletionDateTime > DateTime.Now).ToList();
                    try
                    {
                        TPlanner.lastId = TPlanner.Tasks.Last().Id;
                    }
                    catch (System.InvalidOperationException)
                    {
                        TPlanner.lastId = 0;
                    }
                    break;
                }
                if (menuOption == '0')
                {
                    Console.Clear();
                    Console.Write("Сохранить изменения перед выходом?(Д/Н)");
                    char saveOption = Convert.ToChar(Console.ReadLine());
                    if (saveOption == 'Д')
                    {
                        ts.Tasks = TPlanner.Tasks;
                        ts.SavingToFile();
                    }
                }
            }
        }