Add WorkflowDefinitionSummary model to API client

This commit is contained in:
Sipke Schoorstra 2021-05-13 21:13:16 +02:00
parent d927cae205
commit 2dba9d380f
8 changed files with 46 additions and 10 deletions

1
pack-local-feed.ps1 Normal file
View file

@ -0,0 +1 @@
dotnet pack -o C:\Projects\Elsa\feed --version-suffix "rc2-5" -p:PackageVersion=2.0.0-rc2-5

View file

@ -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
{
/// <summary>
/// Reserved to be used by the compiler for tracking metadata.
/// This class should not be used by developers in source code.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
internal static class IsExternalInit
{
}
}

View file

@ -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; }
}
}

View file

@ -8,13 +8,13 @@ namespace Elsa.Client.Services
public interface IWorkflowDefinitionsApi
{
[Get("/v1/workflow-definitions/{workflowDefinitionId}/{versionOptions}")]
Task<WorkflowDefinition> GetByIdAsync(string workflowDefinitionId, VersionOptions versionOptions, CancellationToken cancellationToken = default);
Task<WorkflowDefinition?> GetByIdAsync(string workflowDefinitionId, VersionOptions versionOptions, CancellationToken cancellationToken = default);
[Get("/v1/workflow-definitions/{workflowDefinitionVersionId}")]
Task<WorkflowDefinition> GetByVersionIdAsync(string workflowDefinitionVersionId, CancellationToken cancellationToken = default);
Task<WorkflowDefinition?> GetByVersionIdAsync(string workflowDefinitionVersionId, CancellationToken cancellationToken = default);
[Get("/v1/workflow-definitions")]
Task<PagedList<WorkflowDefinition>> ListAsync(int? page = default, int? pageSize = default, VersionOptions? version = default, CancellationToken cancellationToken = default);
Task<PagedList<WorkflowDefinitionSummary>> ListAsync(int? page = default, int? pageSize = default, VersionOptions? version = default, CancellationToken cancellationToken = default);
[Post("/v1/workflow-definitions")]
Task<WorkflowDefinition> SaveAsync([Body] SaveWorkflowDefinitionRequest request, CancellationToken cancellationToken = default);

View file

@ -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<WorkflowDefinition> Definitions { get; set; } = new List<WorkflowDefinition>();
private ICollection<IGrouping<string, WorkflowDefinition>> DefinitionGroupings { get; set; } = new List<IGrouping<string, WorkflowDefinition>>();
private ICollection<WorkflowDefinitionSummary> Definitions { get; set; } = new List<WorkflowDefinitionSummary>();
private ICollection<IGrouping<string, WorkflowDefinitionSummary>> DefinitionGroupings { get; set; } = new List<IGrouping<string, WorkflowDefinitionSummary>>();
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");

View file

@ -15,7 +15,7 @@ namespace ElsaDashboard.Backend.Rpc
_elsaClient = elsaClient;
}
public async Task<PagedList<WorkflowDefinition>> ListAsync(ListWorkflowDefinitionsRequest request, CallContext context = default) =>
public async Task<PagedList<WorkflowDefinitionSummary>> ListAsync(ListWorkflowDefinitionsRequest request, CallContext context = default) =>
await _elsaClient.WorkflowDefinitions.ListAsync(request.Page, request.PageSize, request.VersionOptions, context.CancellationToken);
public async Task<WorkflowDefinition> GetByIdAsync(GetWorkflowDefinitionByIdRequest request, CallContext context = default) =>

View file

@ -5,7 +5,7 @@ namespace ElsaDashboard.Shared.Rpc
{
public static class WorkflowDefinitionServiceExtensions
{
public static async Task<PagedList<WorkflowDefinition>> 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<PagedList<WorkflowDefinitionSummary>> 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<WorkflowDefinition> GetByIdAsync(this IWorkflowDefinitionService service, string workflowDefinitionId, VersionOptions? versionOptions = default) => await service.GetByIdAsync(new GetWorkflowDefinitionByIdRequest(workflowDefinitionId, versionOptions));
public static async Task<WorkflowDefinition> 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));

View file

@ -9,7 +9,7 @@ namespace ElsaDashboard.Shared.Rpc
public interface IWorkflowDefinitionService
{
[Operation]
Task<PagedList<WorkflowDefinition>> ListAsync(ListWorkflowDefinitionsRequest request, CallContext context = default);
Task<PagedList<WorkflowDefinitionSummary>> ListAsync(ListWorkflowDefinitionsRequest request, CallContext context = default);
[Operation]
Task<WorkflowDefinition> GetByIdAsync(GetWorkflowDefinitionByIdRequest request, CallContext context = default);