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());
        }