public static void AddInOrder(this ObservableCollection<TaskView> list, TaskView item) { list.Add(item); var order = list.OrderByDescending(elem => elem.ViewModel.SeverityValue).ToList(); list.Clear(); order.ForEach(orderItem => list.Add(orderItem)); }
/// <summary> /// Removes an items from the view model collections /// </summary> /// <param name="item"></param> private void RemoveItemFromCollections(TaskView item) { _toDo.RemoveByKey(item.ViewModel.Key); _inProgress.RemoveByKey(item.ViewModel.Key); _done.RemoveByKey(item.ViewModel.Key); }
public void Update(TaskView item, IEnumerable itemsSource) { if (Done.Contains(item)) { return; } if (itemsSource.Equals(_inProgress)) { item.ViewModel.InProgress(); } else if (itemsSource.Equals(_toDo)) { item.ViewModel.ToDo(); } if (itemsSource.Equals(Done)) { if (item.Equals(Current)) { if (item.ViewModel.CommitBranch()) { Current = null; Done.AddInOrder(item); item.PopUpLastComment(); } else { item.SetTemporarWarningMessage("Nothing to commit"); } } else { return; } } else { if (item.Equals(Current)) { Current.ViewModel.SaveBranch(); Current = null; RaisePropertyChanged("Current"); } else { RemoveItemFromCollections(item); } var source = (itemsSource as ObservableCollection<TaskView>); source.AddInOrder(item); } }
/// <summary> /// Updates the Current task view /// </summary> /// <param name="item">The Task View</param> public void Update(TaskView item) { if (Done.Contains(item)) { return; } RemoveItemFromCollections(item); if (Current != null) { Current.ViewModel.SaveBranch(); _inProgress.AddInOrder(Current); } Current = item; item.ViewModel.InProgress(); item.ViewModel.SwitchToBranch(); RaisePropertyChanged("Current"); }
private void UpdateUI(TaskModel model) { if (!View.ViewModel.IsCurrent(model.Key)) { var taskView = new TaskView(new TaskViewModel(model)); if (model.IsToDo) { View.ViewModel.ToDo.AddInOrder(taskView); } else if (model.IsInProgress) { View.ViewModel.InProgress.AddInOrder(taskView); } else if (model.IsDone) { View.ViewModel.Done.AddInOrder(taskView); } } }