diff --git a/src/clients/Elsa.Client/ElsaClient.cs b/src/clients/Elsa.Client/ElsaClient.cs index 200a9fcc1..490b7c60f 100644 --- a/src/clients/Elsa.Client/ElsaClient.cs +++ b/src/clients/Elsa.Client/ElsaClient.cs @@ -4,15 +4,17 @@ namespace Elsa.Client { public class ElsaClient : IElsaClient { - public ElsaClient(IActivitiesApi activitiesApi, IWorkflowDefinitionsApi workflowDefinitionsApi, IWorkflowRegistryApi workflowRegistry) + public ElsaClient(IActivitiesApi activities, IWorkflowDefinitionsApi workflowDefinitions, IWorkflowRegistryApi workflowRegistry, IWorkflowInstanceApi workflowInstances) { - Activities = activitiesApi; - WorkflowDefinitions = workflowDefinitionsApi; + Activities = activities; + WorkflowDefinitions = workflowDefinitions; WorkflowRegistry = workflowRegistry; + WorkflowInstances = workflowInstances; } public IActivitiesApi Activities { get; } public IWorkflowDefinitionsApi WorkflowDefinitions { get; } public IWorkflowRegistryApi WorkflowRegistry { get; } + public IWorkflowInstanceApi WorkflowInstances { get; } } } \ No newline at end of file diff --git a/src/clients/Elsa.Client/IElsaClient.cs b/src/clients/Elsa.Client/IElsaClient.cs index 0e2b975a7..d0c3e2289 100644 --- a/src/clients/Elsa.Client/IElsaClient.cs +++ b/src/clients/Elsa.Client/IElsaClient.cs @@ -7,5 +7,6 @@ namespace Elsa.Client IActivitiesApi Activities { get; } IWorkflowDefinitionsApi WorkflowDefinitions { get; } IWorkflowRegistryApi WorkflowRegistry { get; } + IWorkflowInstanceApi WorkflowInstances { get; } } } \ No newline at end of file diff --git a/src/clients/Elsa.Client/Services/IWorkflowInstanceApi.cs b/src/clients/Elsa.Client/Services/IWorkflowInstanceApi.cs new file mode 100644 index 000000000..db24814be --- /dev/null +++ b/src/clients/Elsa.Client/Services/IWorkflowInstanceApi.cs @@ -0,0 +1,16 @@ +using System.Threading; +using System.Threading.Tasks; +using Elsa.Client.Models; +using Refit; + +namespace Elsa.Client.Services +{ + public interface IWorkflowInstanceApi + { + [Get("/v1/workflow-instance/{id}")] + Task GetByIdAsync(string id, CancellationToken cancellationToken = default); + + [Get("/v1/workflow-instance")] + Task> ListAsync(int? page = default, int? pageSize = default, CancellationToken cancellationToken = default); + } +} \ No newline at end of file diff --git a/src/core/Elsa.Core/Extensions/WorkflowInstanceManagerExtensions.cs b/src/core/Elsa.Core/Extensions/WorkflowInstanceManagerExtensions.cs index bf9240399..6366107e9 100644 --- a/src/core/Elsa.Core/Extensions/WorkflowInstanceManagerExtensions.cs +++ b/src/core/Elsa.Core/Extensions/WorkflowInstanceManagerExtensions.cs @@ -21,7 +21,16 @@ namespace Elsa.Extensions WorkflowStatus status, CancellationToken cancellationToken = default) => await manager.Query(x => x.CorrelationId == correlationId && x.WorkflowStatus == status).FirstOrDefaultAsync(); - + + public static async Task CountAsync(this IWorkflowInstanceManager manager, CancellationToken cancellationToken = default) => await manager.Query().CountAsync(); + + public static async Task> ListAsync( + this IWorkflowInstanceManager manager, + int page, + int pageSize, + CancellationToken cancellationToken = default) => + await manager.Query().Skip(page * pageSize).Take(pageSize).ListAsync(); + public static async Task> ListByCorrelationIdAsync( this IWorkflowInstanceManager manager, string correlationId, diff --git a/src/dashboards/blazor/ElsaDashboard.Application/Pages/Designer.razor b/src/dashboards/blazor/ElsaDashboard.Application/Pages/WorkflowDefinitions/Designer.razor similarity index 85% rename from src/dashboards/blazor/ElsaDashboard.Application/Pages/Designer.razor rename to src/dashboards/blazor/ElsaDashboard.Application/Pages/WorkflowDefinitions/Designer.razor index 7fc8fbb97..b0b6dc662 100644 --- a/src/dashboards/blazor/ElsaDashboard.Application/Pages/Designer.razor +++ b/src/dashboards/blazor/ElsaDashboard.Application/Pages/WorkflowDefinitions/Designer.razor @@ -1,9 +1,9 @@ -@page "/workflows/designer" -@page "/workflows/{workflowDefinitionId}/designer" +@page "/workflow-definitions/designer" +@page "/workflow-definitions/{workflowDefinitionId}/designer"

- Workflow Editor + Workflow Definition Editor

diff --git a/src/dashboards/blazor/ElsaDashboard.Application/Pages/Designer.razor.cs b/src/dashboards/blazor/ElsaDashboard.Application/Pages/WorkflowDefinitions/Designer.razor.cs similarity index 98% rename from src/dashboards/blazor/ElsaDashboard.Application/Pages/Designer.razor.cs rename to src/dashboards/blazor/ElsaDashboard.Application/Pages/WorkflowDefinitions/Designer.razor.cs index 533c70a80..9c2d7b115 100644 --- a/src/dashboards/blazor/ElsaDashboard.Application/Pages/Designer.razor.cs +++ b/src/dashboards/blazor/ElsaDashboard.Application/Pages/WorkflowDefinitions/Designer.razor.cs @@ -8,7 +8,7 @@ using ElsaDashboard.Application.Services; using ElsaDashboard.Shared.Rpc; using Microsoft.AspNetCore.Components; -namespace ElsaDashboard.Application.Pages +namespace ElsaDashboard.Application.Pages.WorkflowDefinitions { partial class Designer { diff --git a/src/dashboards/blazor/ElsaDashboard.Application/Pages/WorkflowDefinitions.razor b/src/dashboards/blazor/ElsaDashboard.Application/Pages/WorkflowDefinitions/List.razor similarity index 96% rename from src/dashboards/blazor/ElsaDashboard.Application/Pages/WorkflowDefinitions.razor rename to src/dashboards/blazor/ElsaDashboard.Application/Pages/WorkflowDefinitions/List.razor index ca1989cdd..e20e1082f 100644 --- a/src/dashboards/blazor/ElsaDashboard.Application/Pages/WorkflowDefinitions.razor +++ b/src/dashboards/blazor/ElsaDashboard.Application/Pages/WorkflowDefinitions/List.razor @@ -8,7 +8,7 @@
- + Create @@ -115,7 +115,7 @@ @@ -154,7 +154,7 @@ class="z-10 mx-3 origin-top-right absolute right-7 top-0 w-48 mt-1 rounded-md shadow-lg">