From 2dba9d380fa0b479eb8ccea3ec85c018f70f4a66 Mon Sep 17 00:00:00 2001 From: Sipke Schoorstra Date: Thu, 13 May 2021 21:13:16 +0200 Subject: [PATCH] Add WorkflowDefinitionSummary model to API client --- pack-local-feed.ps1 | 1 + src/clients/Elsa.Client/IsExternalInit.cs | 17 +++++++++++++++++ .../Models/WorkflowDefinitionSummary.cs | 18 ++++++++++++++++++ .../Services/IWorkflowDefinitionsApi.cs | 8 ++++---- .../Pages/WorkflowDefinitions/List.razor.cs | 6 +++--- .../Rpc/WorkflowDefinitionService.cs | 2 +- .../WorkflowDefinitionServiceExtensions.cs | 2 +- .../Services/IWorkflowDefinitionService.cs | 2 +- 8 files changed, 46 insertions(+), 10 deletions(-) create mode 100644 pack-local-feed.ps1 create mode 100644 src/clients/Elsa.Client/IsExternalInit.cs create mode 100644 src/clients/Elsa.Client/Models/WorkflowDefinitionSummary.cs diff --git a/pack-local-feed.ps1 b/pack-local-feed.ps1 new file mode 100644 index 000000000..ee159b95d --- /dev/null +++ b/pack-local-feed.ps1 @@ -0,0 +1 @@ +dotnet pack -o C:\Projects\Elsa\feed --version-suffix "rc2-5" -p:PackageVersion=2.0.0-rc2-5 \ No newline at end of file diff --git a/src/clients/Elsa.Client/IsExternalInit.cs b/src/clients/Elsa.Client/IsExternalInit.cs new file mode 100644 index 000000000..475dd51b6 --- /dev/null +++ b/src/clients/Elsa.Client/IsExternalInit.cs @@ -0,0 +1,17 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.ComponentModel; + +// ReSharper disable once CheckNamespace +namespace System.Runtime.CompilerServices +{ + /// + /// Reserved to be used by the compiler for tracking metadata. + /// This class should not be used by developers in source code. + /// + [EditorBrowsable(EditorBrowsableState.Never)] + internal static class IsExternalInit + { + } +} \ No newline at end of file diff --git a/src/clients/Elsa.Client/Models/WorkflowDefinitionSummary.cs b/src/clients/Elsa.Client/Models/WorkflowDefinitionSummary.cs new file mode 100644 index 000000000..9fbefcb07 --- /dev/null +++ b/src/clients/Elsa.Client/Models/WorkflowDefinitionSummary.cs @@ -0,0 +1,18 @@ +using System.Runtime.Serialization; + +namespace Elsa.Client.Models +{ + public class WorkflowDefinitionSummary + { + [DataMember(Order = 1)] public string Id { get; set; } = default!; + [DataMember(Order = 2)] public string DefinitionId { get; set; } = default!; + [DataMember(Order = 3)] public string? Name { get; set; } + [DataMember(Order = 4)] public string? DisplayName { get; set; } + [DataMember(Order = 5)] public string? Description { get; set; } + [DataMember(Order = 6)] public int Version { get; set; } + [DataMember(Order = 7)] public bool IsSingleton { get; set; } + [DataMember(Order = 8)] public WorkflowPersistenceBehavior PersistenceBehavior { get; set; } + [DataMember(Order = 9)] public bool IsPublished { get; set; } + [DataMember(Order = 10)] public bool IsLatest { get; set; } + } +} \ No newline at end of file diff --git a/src/clients/Elsa.Client/Services/IWorkflowDefinitionsApi.cs b/src/clients/Elsa.Client/Services/IWorkflowDefinitionsApi.cs index 6fcbe0183..f3ca10fbb 100644 --- a/src/clients/Elsa.Client/Services/IWorkflowDefinitionsApi.cs +++ b/src/clients/Elsa.Client/Services/IWorkflowDefinitionsApi.cs @@ -8,13 +8,13 @@ namespace Elsa.Client.Services public interface IWorkflowDefinitionsApi { [Get("/v1/workflow-definitions/{workflowDefinitionId}/{versionOptions}")] - Task GetByIdAsync(string workflowDefinitionId, VersionOptions versionOptions, CancellationToken cancellationToken = default); - + Task GetByIdAsync(string workflowDefinitionId, VersionOptions versionOptions, CancellationToken cancellationToken = default); + [Get("/v1/workflow-definitions/{workflowDefinitionVersionId}")] - Task GetByVersionIdAsync(string workflowDefinitionVersionId, CancellationToken cancellationToken = default); + Task GetByVersionIdAsync(string workflowDefinitionVersionId, CancellationToken cancellationToken = default); [Get("/v1/workflow-definitions")] - Task> ListAsync(int? page = default, int? pageSize = default, VersionOptions? version = default, CancellationToken cancellationToken = default); + Task> ListAsync(int? page = default, int? pageSize = default, VersionOptions? version = default, CancellationToken cancellationToken = default); [Post("/v1/workflow-definitions")] Task SaveAsync([Body] SaveWorkflowDefinitionRequest request, CancellationToken cancellationToken = default); diff --git a/src/dashboards/blazor/ElsaDashboard.Application/Pages/WorkflowDefinitions/List.razor.cs b/src/dashboards/blazor/ElsaDashboard.Application/Pages/WorkflowDefinitions/List.razor.cs index 7deb2414c..69cde22cd 100644 --- a/src/dashboards/blazor/ElsaDashboard.Application/Pages/WorkflowDefinitions/List.razor.cs +++ b/src/dashboards/blazor/ElsaDashboard.Application/Pages/WorkflowDefinitions/List.razor.cs @@ -14,8 +14,8 @@ namespace ElsaDashboard.Application.Pages.WorkflowDefinitions [Parameter] public int PageSize { get; set; } = 10; [Inject] private IWorkflowDefinitionService WorkflowDefinitionService { get; set; } = default!; [Inject] private IConfirmDialogService ConfirmDialogService { get; set; } = default!; - private ICollection Definitions { get; set; } = new List(); - private ICollection> DefinitionGroupings { get; set; } = new List>(); + private ICollection Definitions { get; set; } = new List(); + private ICollection> DefinitionGroupings { get; set; } = new List>(); protected override async Task OnParametersSetAsync() { @@ -28,7 +28,7 @@ namespace ElsaDashboard.Application.Pages.WorkflowDefinitions DefinitionGroupings = Definitions.GroupBy(x => x.DefinitionId).ToList(); } - private async Task OnDeleteWorkflowDefinitionClick(WorkflowDefinition workflowDefinition) + private async Task OnDeleteWorkflowDefinitionClick(WorkflowDefinitionSummary workflowDefinition) { var result = await ConfirmDialogService.Show("Delete Workflow Definition", "Are you sure you want to delete this workflow definition? This will also delete any and all of its workflow instances.", "Delete"); diff --git a/src/dashboards/blazor/ElsaDashboard.Backend/Rpc/WorkflowDefinitionService.cs b/src/dashboards/blazor/ElsaDashboard.Backend/Rpc/WorkflowDefinitionService.cs index 21118dbed..e01a314d1 100644 --- a/src/dashboards/blazor/ElsaDashboard.Backend/Rpc/WorkflowDefinitionService.cs +++ b/src/dashboards/blazor/ElsaDashboard.Backend/Rpc/WorkflowDefinitionService.cs @@ -15,7 +15,7 @@ namespace ElsaDashboard.Backend.Rpc _elsaClient = elsaClient; } - public async Task> ListAsync(ListWorkflowDefinitionsRequest request, CallContext context = default) => + public async Task> ListAsync(ListWorkflowDefinitionsRequest request, CallContext context = default) => await _elsaClient.WorkflowDefinitions.ListAsync(request.Page, request.PageSize, request.VersionOptions, context.CancellationToken); public async Task GetByIdAsync(GetWorkflowDefinitionByIdRequest request, CallContext context = default) => diff --git a/src/dashboards/blazor/ElsaDashboard.Shared/Rpc/WorkflowDefinition/Extensions/WorkflowDefinitionServiceExtensions.cs b/src/dashboards/blazor/ElsaDashboard.Shared/Rpc/WorkflowDefinition/Extensions/WorkflowDefinitionServiceExtensions.cs index df4056ba3..ac5d52ca3 100644 --- a/src/dashboards/blazor/ElsaDashboard.Shared/Rpc/WorkflowDefinition/Extensions/WorkflowDefinitionServiceExtensions.cs +++ b/src/dashboards/blazor/ElsaDashboard.Shared/Rpc/WorkflowDefinition/Extensions/WorkflowDefinitionServiceExtensions.cs @@ -5,7 +5,7 @@ namespace ElsaDashboard.Shared.Rpc { public static class WorkflowDefinitionServiceExtensions { - public static async Task> ListAsync(this IWorkflowDefinitionService service, int? page = default, int? pageSize = default, VersionOptions? versionOptions = default) => await service.ListAsync(new ListWorkflowDefinitionsRequest(page, pageSize, versionOptions)); + public static async Task> ListAsync(this IWorkflowDefinitionService service, int? page = default, int? pageSize = default, VersionOptions? versionOptions = default) => await service.ListAsync(new ListWorkflowDefinitionsRequest(page, pageSize, versionOptions)); public static async Task GetByIdAsync(this IWorkflowDefinitionService service, string workflowDefinitionId, VersionOptions? versionOptions = default) => await service.GetByIdAsync(new GetWorkflowDefinitionByIdRequest(workflowDefinitionId, versionOptions)); public static async Task GetByVersionIdAsync(this IWorkflowDefinitionService service, string workflowDefinitionVersionId) => await service.GetByVersionIdAsync(new GetWorkflowDefinitionByVersionIdRequest(workflowDefinitionVersionId)); public static async Task DeleteAsync(this IWorkflowDefinitionService service, string workflowDefinitionId) => await service.DeleteAsync(new DeleteWorkflowDefinitionRequest(workflowDefinitionId)); diff --git a/src/dashboards/blazor/ElsaDashboard.Shared/Rpc/WorkflowDefinition/Services/IWorkflowDefinitionService.cs b/src/dashboards/blazor/ElsaDashboard.Shared/Rpc/WorkflowDefinition/Services/IWorkflowDefinitionService.cs index 786d684a8..e688ad181 100644 --- a/src/dashboards/blazor/ElsaDashboard.Shared/Rpc/WorkflowDefinition/Services/IWorkflowDefinitionService.cs +++ b/src/dashboards/blazor/ElsaDashboard.Shared/Rpc/WorkflowDefinition/Services/IWorkflowDefinitionService.cs @@ -9,7 +9,7 @@ namespace ElsaDashboard.Shared.Rpc public interface IWorkflowDefinitionService { [Operation] - Task> ListAsync(ListWorkflowDefinitionsRequest request, CallContext context = default); + Task> ListAsync(ListWorkflowDefinitionsRequest request, CallContext context = default); [Operation] Task GetByIdAsync(GetWorkflowDefinitionByIdRequest request, CallContext context = default);