private PagedData<Task> GetSortedOnServerTasks(IQuery<Task, TaskInclude, TaskFilter, TaskSorter> query, int pageSize, int pageNumber, TaskListColumns column, SortDirection direction) { query.WithPaging(pageSize, pageNumber); switch (column) { case TaskListColumns.Title: { query.Sort(x => x.ByTitle(direction)); break; } case TaskListColumns.Date: { query.Sort(x => x.ByDateModified(direction)); break; } case TaskListColumns.Type: { query.Sort(x => x.ByType(direction)); break; } case TaskListColumns.Size: { query.Sort(x => x.BySize(direction)); break; } case TaskListColumns.Urgency: { query.Sort(x => x.ByUrgency(direction)); break; } case TaskListColumns.EstimatedPrice: { query.Sort(x => x.ByEstimatedPrice(direction)); break; } case TaskListColumns.Deadline: { query.Sort(x => x.ByDeadline(direction)); break; } } return TaskService.GetAll(query); }
private PagedData<Task> GetSortedOnClientTasks(IQuery<Task, TaskInclude, TaskFilter, TaskSorter> query, int pageSize, int pageNumber, TaskListColumns column, SortDirection direction) { var allData = TaskService.GetAll(query); var sortedData = allData.Data.AsEnumerable(); switch (column) { case TaskListColumns.Priority: { sortedData = sortedData.SortBy(direction, x => x.Priority); break; } case TaskListColumns.Hours: { sortedData = sortedData.SortBy(direction, x => x.Hours()); break; } } return new PagedData<Task>( sortedData.Skip(pageNumber * pageSize).Take(pageSize).ToList(), pageSize, pageNumber, allData.TotalItems); }