public List <TodoTask> GetTasks(TodoTaskStatusTypes status, TodoListSortMethod sortMethod) { var result = new List <TodoTask>(); foreach (var item in _items.Values) { if (item.Status == status) { result.Add(item); } } if (sortMethod == TodoListSortMethod.ByTransactionId) { result.Sort((a, b) => a.Id.CompareTo(b.Id)); } else if (sortMethod == TodoListSortMethod.ByTransactionIdDesc) { result.Sort((a, b) => b.Id.CompareTo(a.Id)); } else if (sortMethod == TodoListSortMethod.ByTimestamp) { result.Sort((a, b) => a.Timestamp.CompareTo(b.Timestamp)); } else if (sortMethod == TodoListSortMethod.ByTimestampDesc) { result.Sort((a, b) => b.Timestamp.CompareTo(a.Timestamp)); } return(result); }
void UpdateTasks(TodoTaskStatusTypes status, string headerName, List <ButtonRow> taskButtons, string noIdentifier) { var header = GetRow <HeaderRow>(headerName); var tasks = TodoList.GetTasks(status, TodoListSortMethod.ByTimestampDesc); if (tasks.Count > 0) { RemoveView(GetRow(noIdentifier)); var diff = ListDiff.Compute(taskButtons, tasks, (a, b) => (a.Tag as TodoTask).Id == b.Id); diff.Process(taskButtons, tasks, (row) => { RemoveView(row); return(true); }, (idx, item) => { AddIndexBefore = false; if (idx == 0) { AddIndex = header; } else { AddIndex = taskButtons[idx - 1]; } var b = AddTaskButtonRow(item); taskButtons.Insert(idx, b); }); } else { taskButtons.Clear(); ClearHeaderSection(headerName); AddIndex = header; AddIndexBefore = false; AddInfoRow(noIdentifier); } }
public TodoTaskStatusEvent(HeleusClientResponse result, TodoTaskStatusTypes itemStatus) : base(result) { ItemStatus = itemStatus; }
Task StatusChanged(TodoTaskStatusTypes obj) { _statusButton.IsEnabled = obj != _task.Status; return(Task.CompletedTask); }