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