diff --git a/src/clients/Elsa.Api.Client/Models/OrderDirection.cs b/src/clients/Elsa.Api.Client/Models/OrderDirection.cs new file mode 100644 index 000000000..f4f3368fb --- /dev/null +++ b/src/clients/Elsa.Api.Client/Models/OrderDirection.cs @@ -0,0 +1,17 @@ +namespace Elsa.Api.Client.Models; + +/// +/// The order direction. +/// +public enum OrderDirection +{ + /// + /// Ascending order. + /// + Ascending, + + /// + /// + /// + Descending +} \ No newline at end of file diff --git a/src/clients/Elsa.Api.Client/Resources/WorkflowDefinitions/Models/ListWorkflowDefinitionsRequest.cs b/src/clients/Elsa.Api.Client/Resources/WorkflowDefinitions/Models/ListWorkflowDefinitionsRequest.cs index c10b44653..16c508f77 100644 --- a/src/clients/Elsa.Api.Client/Resources/WorkflowDefinitions/Models/ListWorkflowDefinitionsRequest.cs +++ b/src/clients/Elsa.Api.Client/Resources/WorkflowDefinitions/Models/ListWorkflowDefinitionsRequest.cs @@ -1,3 +1,4 @@ +using Elsa.Api.Client.Models; using Refit; namespace Elsa.Api.Client.Resources.WorkflowDefinitions.Models; @@ -34,4 +35,14 @@ public class ListWorkflowDefinitionsRequest /// [AliasAs("label")] public string[]? Labels { get; set; } + + /// + /// The field to order by. + /// + public OrderByWorkflowDefinition? OrderBy { get; set; } + + /// + /// The order direction. + /// + public OrderDirection? OrderDirection { get; set; } } \ No newline at end of file diff --git a/src/clients/Elsa.Api.Client/Resources/WorkflowDefinitions/Models/OrderByWorkflowDefinition.cs b/src/clients/Elsa.Api.Client/Resources/WorkflowDefinitions/Models/OrderByWorkflowDefinition.cs new file mode 100644 index 000000000..8042e6de7 --- /dev/null +++ b/src/clients/Elsa.Api.Client/Resources/WorkflowDefinitions/Models/OrderByWorkflowDefinition.cs @@ -0,0 +1,22 @@ +namespace Elsa.Api.Client.Resources.WorkflowDefinitions.Models; + +/// +/// Defines the order by options for workflow definitions. +/// +public enum OrderByWorkflowDefinition +{ + /// + /// Order by the date the workflow definition was created. + /// + Created, + + /// + /// Order by the name of the workflow definition. + /// + Name, + + /// + /// Order by the version of the workflow definition. + /// + Version +} \ No newline at end of file diff --git a/src/modules/Elsa.Workflows.Api/Endpoints/WorkflowDefinitions/List/Endpoint.cs b/src/modules/Elsa.Workflows.Api/Endpoints/WorkflowDefinitions/List/Endpoint.cs index 9c69a3aaf..3f4098864 100644 --- a/src/modules/Elsa.Workflows.Api/Endpoints/WorkflowDefinitions/List/Endpoint.cs +++ b/src/modules/Elsa.Workflows.Api/Endpoints/WorkflowDefinitions/List/Endpoint.cs @@ -74,8 +74,18 @@ internal class List : ElsaEndpoint Direction = direction }; - return await _store.FindSummariesAsync(filter, order, pageArgs, cancellationToken); + return await _store.FindSummariesAsync(filter, order, pageArgs, cancellationToken); } + case OrderByWorkflowDefinition.Version: + { + var order = new WorkflowDefinitionOrder + { + KeySelector = p => p.Version, + Direction = direction + }; + + return await _store.FindSummariesAsync(filter, order, pageArgs, cancellationToken); + } } } } \ No newline at end of file diff --git a/src/modules/Elsa.Workflows.Api/Models/OrderByWorkflowDefinition.cs b/src/modules/Elsa.Workflows.Api/Models/OrderByWorkflowDefinition.cs index 35ef6d047..1d6dd79a1 100644 --- a/src/modules/Elsa.Workflows.Api/Models/OrderByWorkflowDefinition.cs +++ b/src/modules/Elsa.Workflows.Api/Models/OrderByWorkflowDefinition.cs @@ -13,5 +13,10 @@ public enum OrderByWorkflowDefinition /// /// Order by the name of the workflow definition. /// - Name + Name, + + /// + /// Order by the version of the workflow definition. + /// + Version } \ No newline at end of file