public IList <TaskDto> GetTaskList(TaskListType taskListType, int pageNo, Sort?sort = null, string sortColumn = null) { var taskBatchSize = _settingService.GetTaskBatchSize(); IEnumerable <Task> taskList = _taskProvider.GetTaskList(taskListType); Func <Task, object> funcTaskKeySelector = null; if (sort != null && !string.IsNullOrEmpty(sortColumn) && _selectors.TryGetValue(sortColumn, out funcTaskKeySelector)) { taskList = sort == Sort.Asc ? taskList.OrderBy(funcTaskKeySelector) : taskList.OrderByDescending(funcTaskKeySelector); } if (pageNo != Consts.AllTasks) { taskList = taskList.Skip((pageNo - 1) * taskBatchSize).Take(taskBatchSize); } return(taskList.Select(ConvertToDto).ToList()); }