コード例 #1
0
        /// <summary>
        /// change la priorité de la tâche
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void cmbBoxTaskPriority_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            ComboBox comboBox = e.Source as ComboBox;

            try
            {
                Priority idPriority = (Priority)e.AddedItems[0];
                //recherche la tâche correspondante
                foreach (Task task in Tasks)
                {
                    if (task.IDTask == int.Parse(comboBox.Tag.ToString()))
                    {
                        //change la priorité de la tâche et la met à jour sur la base de données
                        foreach (Priority priority in task.PrioritiesDisplay)
                        {
                            if (priority.IDPriority == idPriority.IDPriority)
                            {
                                task.IdPriority = priority.IDPriority;

                                MyGlobals.databaseHandler.TaskDAO.UpdateTaskPriorityId(task);
                                ListBox_Tasks.Items.Refresh();
                            }
                        }
                    }
                }
                //Trie à nouveau les tâche si l'une des options de trie par priorité est sélectionner
                TypeSort sort = (TypeSort)cmbBoxSortTask.SelectedItem;
                if (sort.ID == 1 || sort.ID == 2)
                {
                    SortingTask();
                }
            }
            catch (IndexOutOfRangeException)
            { }
        }
コード例 #2
0
        /// <summary>
        /// Trie les tâches selon le type de trie défini
        /// </summary>
        /// <param name="sort">type de trie</param>
        /// <param name="Tasks">Liste de tâche à trier</param>
        public static void SortTasks(TypeSort sort, ObservableCollection <Task> Tasks)
        {
            for (int j = Tasks.Count - 1; j > 0; j--)
            {
                for (int i = 0; i < j; i++)
                {
                    switch (sort.ID)
                    {
                    //trie par aucun type spécifique
                    case 0:
                        if (Tasks[i].Index > Tasks[i + 1].Index)
                        {
                            Tasks.Move(i, i + 1);
                        }
                        break;

                    //trie des tâches par les moins urgents
                    case 1:
                        if (Tasks[i].Priority.DegreePriority > Tasks[i + 1].Priority.DegreePriority)
                        {
                            Tasks.Move(i, i + 1);
                        }
                        break;

                    //trie des tâches par les plus urgents
                    case 2:
                        if (Tasks[i].Priority.DegreePriority < Tasks[i + 1].Priority.DegreePriority)
                        {
                            Tasks.Move(i, i + 1);
                        }
                        break;

                    //trie des tâches par ceux non réaliser
                    case 3:
                        int truc = Tasks[i].State.CompareTo(Tasks[i + 1].State);
                        if (truc < 0)
                        {
                            Tasks.Move(i, i + 1);
                        }
                        break;

                    //trie des tâches par ceux déja réalisé
                    case 4:
                        int compare = Tasks[i].State.CompareTo(Tasks[i + 1].State);
                        if (compare > 0)
                        {
                            Tasks.Move(i, i + 1);
                        }
                        break;
                    }
                }
            }
        }
コード例 #3
0
        /// <summary>
        /// action effectué quand la checkbox n'est plus checké
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void CheckBox_TaskState_Unchecked(object sender, RoutedEventArgs e)
        {
            CheckBox checkBox = e.Source as CheckBox;

            CheckboxAction(checkBox);
            //trie les tâches à nouveau si les options de trie par l'état de la tâche est sélectionner
            TypeSort sort = (TypeSort)cmbBoxSortTask.SelectedItem;

            if (sort.ID == 4 || sort.ID == 3)
            {
                SortingTask();
            }
            TotalTasksUpdate();
        }
コード例 #4
0
        /// <summary>
        /// trie des tâches
        /// </summary>
        private void SortingTask()
        {
            TypeSort sort = (TypeSort)cmbBoxSortTask.SelectedItem;

            Utilities.SortTasks(sort, Tasks);
        }