/// <param name="sortBy"></param> /// <param name="sortOrder"></param> /// <param name="variable"> /// Mandatory when <paramref name="sortBy" /> is either /// <see cref="TaskSorting.ProcessVariable"/>, <see cref="TaskSorting.ExecutionVariable"/>, <see cref="TaskSorting.TaskVariable"/>, <see cref="TaskSorting.CaseExecutionVariable"/> or <see cref="TaskSorting.CaseInstanceVariable"/> /// </param> public TaskQuery Sort(TaskSorting sortBy, SortOrder sortOrder = SortOrder.Ascending, VariableOrder variable = null) { Dictionary <string, object> parameters = null; TaskSorting[] variableSorting = new[] { TaskSorting.ProcessVariable, TaskSorting.ExecutionVariable, TaskSorting.TaskVariable, TaskSorting.CaseExecutionVariable, TaskSorting.CaseInstanceVariable }; bool isVariableSorting = variableSorting.Contains(sortBy); if (isVariableSorting ^ variable != null) { throw new ArgumentException("Variable is mandatory when sortBy is either processVariable, executionVariable, taskVariable, caseExecutionVariable or caseInstanceVariable.", nameof(variable)); } if (variable != null) { parameters = new Dictionary <string, object>() { ["variable"] = variable.VariableName, ["type"] = variable.Type.ToString(), }; } Sorting.Add(new SortingInfo <TaskSorting>() { SortBy = sortBy, SortOrder = sortOrder, Parameters = parameters }); return(this); }
public virtual ActionResult ListConfig(bool showProject = false, TaskSorting sorting = TaskSorting.Title) { var config = new DataTableConfig(); config.Searching = true; config.PageLength = 25; config.SetupServerDataSource(Url.Action(MVC.Tasks.ListData()), FormMethod.Post); config.Columns = new List<DataTableConfig.Column>(columns); config.Columns[(int)TaskListColumns.ProjectName].Visible = showProject; config.Columns[(int)TaskListColumns.Delete].Visible = this.Can(MVC.Tasks.Delete()); switch (sorting) { case TaskSorting.Title: { config.AddOrder((int)TaskListColumns.Title, DataTables.Mvc.Column.OrderDirection.Ascendant); break; } case TaskSorting.Priority: { config.AddOrder((int)TaskListColumns.Priority, DataTables.Mvc.Column.OrderDirection.Descendant); break; } } var json = JsonConvert.SerializeObject(config); return Content(json, "application/json"); }