/// <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) { } }
/// <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; } } } }
/// <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(); }
/// <summary> /// trie des tâches /// </summary> private void SortingTask() { TypeSort sort = (TypeSort)cmbBoxSortTask.SelectedItem; Utilities.SortTasks(sort, Tasks); }