示例#1
0
        public void AddToFave(int taskID)
        {
            if (TasksVM.IsFave(taskID))
            {
                return;
            }

            var taskNode = TasksVM.DictionaryFull[taskID];

            // Добавим всех родителей, если их нет в избранном
            List <TreeNode> toAddInFave = new List <TreeNode>();
            var             parent      = taskNode.ParentNode;

            while (parent != null && !TreeRoots.Contains(parent))
            {
                toAddInFave.Add(parent);
                parent = parent.ParentNode;
            }
            for (int i = toAddInFave.Count - 1; i >= 0; --i)
            {
                if (!TasksVM.IsFave(toAddInFave[i].Task.ID))
                {
                    TasksVM.AddFave(toAddInFave[i].Task);
                }
            }

            // Добавим себя
            TasksVM.AddFave(taskNode.Task);
            if (taskNode.Task.ParentTaskID == null)
            {
                TreeRoots.Add(taskNode);
            }
        }
示例#2
0
        public void Accept(object obj)
        {
            if (_favouritingTask == null)
            {
                return;
            }
            if (TasksVM.IsFave(_favouritingTask.ID))
            {
                MessageBox.Show("Данная задача уже добавлена в избранное");
                return;
            }
            //Mouse.OverrideCursor = Cursors.Wait;
            Mouse.SetCursor(Cursors.Wait);


            // Добавим всех родителей, если их нет в избранном
            List <TreeNode> toAddInFave = new List <TreeNode>();
            var             parent      = SelectedTaskNode.ParentNode;

            while (parent != null && !FaveTreeRoots.Contains(parent))
            {
                toAddInFave.Add(parent);
                parent = parent.ParentNode;
            }
            for (int i = toAddInFave.Count - 1; i >= 0; --i)
            {
                if (!TasksVM.IsFave(toAddInFave[i].Task.ID))
                {
                    TasksVM.AddFave(toAddInFave[i].Task);
                }
            }

            // Добавим себя
            TasksVM.AddFave(_favouritingTask);

            // Добавим своё поддерево
            Queue <TreeNode> nodeToFave = new Queue <TreeNode>();

            nodeToFave.Enqueue(SelectedTaskNode);
            while (nodeToFave.Count > 0)
            {
                var curNode = nodeToFave.Dequeue();
                foreach (var childNode in curNode.TreeNodes)
                {
                    TasksVM.AddFave(childNode.Task);
                    nodeToFave.Enqueue(childNode);
                }
            }
            //Mouse.OverrideCursor = Cursors.Arrow;
            Mouse.SetCursor(Cursors.Arrow);
            MessageBox.Show("Задача: " + _favouritingTask.TaskName + " добавлена в избранное", "Добавление в избранное", MessageBoxButton.OK, MessageBoxImage.Information);
            //MessengerInstance.Unregister<KeyValuePair<TaskCommandEnum, Task>>(this, _doTaskCommand);
        }