Пример #1
0
        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);
        }
Пример #2
0
        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);
            }
        }
Пример #3
0
 public TodoTaskStatusEvent(HeleusClientResponse result, TodoTaskStatusTypes itemStatus) : base(result)
 {
     ItemStatus = itemStatus;
 }
Пример #4
0
        Task StatusChanged(TodoTaskStatusTypes obj)
        {
            _statusButton.IsEnabled = obj != _task.Status;

            return(Task.CompletedTask);
        }