From 0369869910602fa1e0cee08545d56c4584188fbb Mon Sep 17 00:00:00 2001 From: Sipke Schoorstra Date: Fri, 11 Dec 2020 20:42:04 +0100 Subject: [PATCH] Fix gRPC types --- .../Services/IWorkflowRegistryApi.cs | 2 +- .../Program.cs | 2 +- .../Startup.cs | 2 +- .../appsettings.json | 5 ++- .../Program.cs | 1 + .../ElsaDashboard.Application.csproj | 19 ++++++++++ .../WorkflowDefinitions/Designer.razor.cs | 2 +- .../Pages/WorkflowRegistry/Viewer.razor.cs | 2 +- .../blazor/ElsaDashboard.Application/icon.png | Bin 0 -> 9825 bytes .../ElsaDashboard.Backend.csproj | 34 +++++++++++++---- .../Extensions/ServiceCollectionExtensions.cs | 1 - .../Rpc/WorkflowDefinitionService.cs | 10 ++--- .../Rpc/WorkflowInstanceService.cs | 6 +-- .../Rpc/WorkflowRegistryService.cs | 6 +-- .../blazor/ElsaDashboard.Backend/icon.png | Bin 0 -> 9825 bytes .../ElsaDashboard.Shared.csproj | 34 +++++++++++++---- .../ElsaDashboard.Shared.csproj.DotSettings | 13 +++++++ .../Services}/IActivityService.cs | 2 + .../Rpc/IWorkflowDefinitionService.cs | 16 -------- .../Rpc/IWorkflowInstanceService.cs | 15 -------- .../Rpc/IWorkflowRegistryService.cs | 14 ------- .../WorkflowDefinitionServiceExtensions.cs | 17 +++++++++ .../GetWorkflowDefinitionByIdRequest.cs | 22 +++++++++++ ...GetWorkflowDefinitionByVersionIdRequest.cs | 19 ++++++++++ .../Models/ListWorkflowDefinitionsRequest.cs | 24 ++++++++++++ .../Services/IWorkflowDefinitionService.cs | 23 ++++++++++++ .../WorkflowInstanceServiceExtensions.cs | 13 +++++++ .../Models/DeleteWorkflowInstanceRequest.cs | 20 ++++++++++ .../Models/GetWorkflowInstanceByIdRequest.cs | 20 ++++++++++ .../Models/ListWorkflowInstancesRequest.cs | 22 +++++++++++ .../Services/IWorkflowInstanceService.cs | 21 +++++++++++ .../WorkflowRegistryServiceExtensions.cs | 13 +++++++ .../Models/GetWorkflowBlueprintByIdRequest.cs | 22 +++++++++++ .../Models/ListWorkflowBlueprintsRequest.cs | 24 ++++++++++++ .../Services/IWorkflowRegistryService.cs | 17 +++++++++ .../Surrogates/RuntimeTypeModelExtensions.cs | 4 +- .../Surrogates/WorkflowBlueprintSurrogate.cs | 35 ++++++++++++++++++ .../Surrogates/WorkflowDefinitionSurrogate.cs | 35 ++++++++++++++++++ .../Surrogates/WorkflowInstanceSurrogate.cs | 4 +- .../blazor/ElsaDashboard.Shared/icon.png | Bin 0 -> 9825 bytes .../ElsaDashboard.WebAssembly.csproj | 26 ++++++++++++- ...GrpcServicesServiceCollectionExtensions.cs | 5 ++- .../Extensions/ServiceCollectionExtensions.cs | 4 +- .../blazor/ElsaDashboard.WebAssembly/icon.png | Bin 0 -> 9825 bytes .../Elsa.Server.Api/Elsa.Server.Api.csproj | 4 -- 45 files changed, 491 insertions(+), 89 deletions(-) create mode 100644 src/dashboards/blazor/ElsaDashboard.Application/icon.png create mode 100644 src/dashboards/blazor/ElsaDashboard.Backend/icon.png create mode 100644 src/dashboards/blazor/ElsaDashboard.Shared/ElsaDashboard.Shared.csproj.DotSettings rename src/dashboards/blazor/ElsaDashboard.Shared/Rpc/{ => Activity/Services}/IActivityService.cs (84%) delete mode 100644 src/dashboards/blazor/ElsaDashboard.Shared/Rpc/IWorkflowDefinitionService.cs delete mode 100644 src/dashboards/blazor/ElsaDashboard.Shared/Rpc/IWorkflowInstanceService.cs delete mode 100644 src/dashboards/blazor/ElsaDashboard.Shared/Rpc/IWorkflowRegistryService.cs create mode 100644 src/dashboards/blazor/ElsaDashboard.Shared/Rpc/WorkflowDefinition/Extensions/WorkflowDefinitionServiceExtensions.cs create mode 100644 src/dashboards/blazor/ElsaDashboard.Shared/Rpc/WorkflowDefinition/Models/GetWorkflowDefinitionByIdRequest.cs create mode 100644 src/dashboards/blazor/ElsaDashboard.Shared/Rpc/WorkflowDefinition/Models/GetWorkflowDefinitionByVersionIdRequest.cs create mode 100644 src/dashboards/blazor/ElsaDashboard.Shared/Rpc/WorkflowDefinition/Models/ListWorkflowDefinitionsRequest.cs create mode 100644 src/dashboards/blazor/ElsaDashboard.Shared/Rpc/WorkflowDefinition/Services/IWorkflowDefinitionService.cs create mode 100644 src/dashboards/blazor/ElsaDashboard.Shared/Rpc/WorkflowInstance/Extensions/WorkflowInstanceServiceExtensions.cs create mode 100644 src/dashboards/blazor/ElsaDashboard.Shared/Rpc/WorkflowInstance/Models/DeleteWorkflowInstanceRequest.cs create mode 100644 src/dashboards/blazor/ElsaDashboard.Shared/Rpc/WorkflowInstance/Models/GetWorkflowInstanceByIdRequest.cs create mode 100644 src/dashboards/blazor/ElsaDashboard.Shared/Rpc/WorkflowInstance/Models/ListWorkflowInstancesRequest.cs create mode 100644 src/dashboards/blazor/ElsaDashboard.Shared/Rpc/WorkflowInstance/Services/IWorkflowInstanceService.cs create mode 100644 src/dashboards/blazor/ElsaDashboard.Shared/Rpc/WorkflowRegistry/Extensions/WorkflowRegistryServiceExtensions.cs create mode 100644 src/dashboards/blazor/ElsaDashboard.Shared/Rpc/WorkflowRegistry/Models/GetWorkflowBlueprintByIdRequest.cs create mode 100644 src/dashboards/blazor/ElsaDashboard.Shared/Rpc/WorkflowRegistry/Models/ListWorkflowBlueprintsRequest.cs create mode 100644 src/dashboards/blazor/ElsaDashboard.Shared/Rpc/WorkflowRegistry/Services/IWorkflowRegistryService.cs create mode 100644 src/dashboards/blazor/ElsaDashboard.Shared/Surrogates/WorkflowBlueprintSurrogate.cs create mode 100644 src/dashboards/blazor/ElsaDashboard.Shared/Surrogates/WorkflowDefinitionSurrogate.cs create mode 100644 src/dashboards/blazor/ElsaDashboard.Shared/icon.png create mode 100644 src/dashboards/blazor/ElsaDashboard.WebAssembly/icon.png diff --git a/src/clients/Elsa.Client/Services/IWorkflowRegistryApi.cs b/src/clients/Elsa.Client/Services/IWorkflowRegistryApi.cs index 3d96db389..18e6782ca 100644 --- a/src/clients/Elsa.Client/Services/IWorkflowRegistryApi.cs +++ b/src/clients/Elsa.Client/Services/IWorkflowRegistryApi.cs @@ -8,7 +8,7 @@ namespace Elsa.Client.Services public interface IWorkflowRegistryApi { [Get("/v1/workflow-registry/{id}/{versionOptions}")] - Task GetByIdAsync(string id, VersionOptions versionOptions, CancellationToken cancellationToken = default); + Task GetByIdAsync(string id, VersionOptions versionOptions, CancellationToken cancellationToken = default); [Get("/v1/workflow-registry")] Task> ListAsync(int? page = default, int? pageSize = default, VersionOptions? versionOptions = default, CancellationToken cancellationToken = default); diff --git a/src/dashboards/blazor/ElsaDashboard.Application.Server/Program.cs b/src/dashboards/blazor/ElsaDashboard.Application.Server/Program.cs index 97975b8c0..dbc88da5a 100644 --- a/src/dashboards/blazor/ElsaDashboard.Application.Server/Program.cs +++ b/src/dashboards/blazor/ElsaDashboard.Application.Server/Program.cs @@ -6,7 +6,7 @@ namespace ElsaDashboard.Application.Server { public class Program { - public static BlazorRuntimeModel RuntimeModel => BlazorRuntimeModel.Server; + public static BlazorRuntimeModel RuntimeModel => BlazorRuntimeModel.Browser; public static RenderMode RenderMode => RuntimeModel == BlazorRuntimeModel.Server ? RenderMode.ServerPrerendered : RenderMode.WebAssemblyPrerendered; public static void Main(string[] args) diff --git a/src/dashboards/blazor/ElsaDashboard.Application.Server/Startup.cs b/src/dashboards/blazor/ElsaDashboard.Application.Server/Startup.cs index afcf670ac..a8282cbb1 100644 --- a/src/dashboards/blazor/ElsaDashboard.Application.Server/Startup.cs +++ b/src/dashboards/blazor/ElsaDashboard.Application.Server/Startup.cs @@ -23,7 +23,7 @@ namespace ElsaDashboard.Application.Server { services.AddRazorPages(); services.AddElsaDashboardUI(); - services.AddElsaDashboardBackend(options => options.ServerUrl = new Uri("https://localhost:11000")); + services.AddElsaDashboardBackend(options => options.ServerUrl = Configuration.GetValue("Elsa:HostUrl")); if (Program.RuntimeModel == BlazorRuntimeModel.Server) services.AddServerSideBlazor(options => diff --git a/src/dashboards/blazor/ElsaDashboard.Application.Server/appsettings.json b/src/dashboards/blazor/ElsaDashboard.Application.Server/appsettings.json index 4442d5117..cf8d27193 100644 --- a/src/dashboards/blazor/ElsaDashboard.Application.Server/appsettings.json +++ b/src/dashboards/blazor/ElsaDashboard.Application.Server/appsettings.json @@ -6,5 +6,8 @@ "Microsoft.Hosting.Lifetime": "Information" } }, - "AllowedHosts": "*" + "AllowedHosts": "*", + "Elsa": { + "HostUrl": "https://localhost:11000" + } } diff --git a/src/dashboards/blazor/ElsaDashboard.Application.WebAssembly/Program.cs b/src/dashboards/blazor/ElsaDashboard.Application.WebAssembly/Program.cs index 4a85d44a8..592534779 100644 --- a/src/dashboards/blazor/ElsaDashboard.Application.WebAssembly/Program.cs +++ b/src/dashboards/blazor/ElsaDashboard.Application.WebAssembly/Program.cs @@ -14,6 +14,7 @@ namespace ElsaDashboard.Application.WebAssembly var builder = WebAssemblyHostBuilder.CreateDefault(args); var services = builder.Services; + //builder.RootComponents.Add("#app"); services.AddScoped(sp => new HttpClient {BaseAddress = new Uri(builder.HostEnvironment.BaseAddress)}); services.AddElsaDashboardUI(); services.AddElsaDashboardBackend(); diff --git a/src/dashboards/blazor/ElsaDashboard.Application/ElsaDashboard.Application.csproj b/src/dashboards/blazor/ElsaDashboard.Application/ElsaDashboard.Application.csproj index ac96cca8d..f91b33e9e 100644 --- a/src/dashboards/blazor/ElsaDashboard.Application/ElsaDashboard.Application.csproj +++ b/src/dashboards/blazor/ElsaDashboard.Application/ElsaDashboard.Application.csproj @@ -2,7 +2,19 @@ net5.0 + 1.0.0 latest + Elsa Contributors + + Elsa is a set of workflow libraries and tools that enable lean and mean workflowing capabilities in any .NET Core application. + This package provides a dashboard application using Blazor. + + 2020 + https://github.com/elsa-workflows/elsa-core + https://github.com/elsa-workflows/elsa-core + GitHub + elsa, workflows, dashboard, asp.net core, blazor + icon.png enable @@ -25,4 +37,11 @@ + + + True + + + + diff --git a/src/dashboards/blazor/ElsaDashboard.Application/Pages/WorkflowDefinitions/Designer.razor.cs b/src/dashboards/blazor/ElsaDashboard.Application/Pages/WorkflowDefinitions/Designer.razor.cs index 9c2d7b115..a5dcfde5a 100644 --- a/src/dashboards/blazor/ElsaDashboard.Application/Pages/WorkflowDefinitions/Designer.razor.cs +++ b/src/dashboards/blazor/ElsaDashboard.Application/Pages/WorkflowDefinitions/Designer.razor.cs @@ -31,7 +31,7 @@ namespace ElsaDashboard.Application.Pages.WorkflowDefinitions { if (WorkflowDefinitionId != null) { - WorkflowDefinition = await WorkflowDefinitionService.GetById(WorkflowDefinitionId, VersionOptions.Latest); + WorkflowDefinition = await WorkflowDefinitionService.GetByIdAsync(WorkflowDefinitionId, VersionOptions.Latest); WorkflowModel = CreateWorkflowModel(WorkflowDefinition); } else diff --git a/src/dashboards/blazor/ElsaDashboard.Application/Pages/WorkflowRegistry/Viewer.razor.cs b/src/dashboards/blazor/ElsaDashboard.Application/Pages/WorkflowRegistry/Viewer.razor.cs index 1497acc53..c360adea3 100644 --- a/src/dashboards/blazor/ElsaDashboard.Application/Pages/WorkflowRegistry/Viewer.razor.cs +++ b/src/dashboards/blazor/ElsaDashboard.Application/Pages/WorkflowRegistry/Viewer.razor.cs @@ -25,7 +25,7 @@ namespace ElsaDashboard.Application.Pages.WorkflowRegistry protected override async Task OnParametersSetAsync() { - WorkflowBlueprint = await WorkflowRegistryService.GetById(WorkflowDefinitionId, VersionOptions.Latest); + WorkflowBlueprint = (await WorkflowRegistryService.GetById(WorkflowDefinitionId, VersionOptions.Latest))!; WorkflowModel = CreateWorkflowModel(WorkflowBlueprint); } diff --git a/src/dashboards/blazor/ElsaDashboard.Application/icon.png b/src/dashboards/blazor/ElsaDashboard.Application/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..28dbaafbfe82119161a9b48c7e1fb59fef019c2f GIT binary patch literal 9825 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 Iv{~r?0hzVtHvj+t literal 0 HcmV?d00001 diff --git a/src/dashboards/blazor/ElsaDashboard.Backend/ElsaDashboard.Backend.csproj b/src/dashboards/blazor/ElsaDashboard.Backend/ElsaDashboard.Backend.csproj index 8d9d0baeb..db13437ad 100644 --- a/src/dashboards/blazor/ElsaDashboard.Backend/ElsaDashboard.Backend.csproj +++ b/src/dashboards/blazor/ElsaDashboard.Backend/ElsaDashboard.Backend.csproj @@ -2,20 +2,40 @@ net5.0 + 1.0.0 + latest + Elsa Contributors + + Elsa is a set of workflow libraries and tools that enable lean and mean workflowing capabilities in any .NET Core application. + This package provides dashboard backend services exposed as gRPC endpoints. + + 2020 + https://github.com/elsa-workflows/elsa-core + https://github.com/elsa-workflows/elsa-core + GitHub + elsa, workflows, dashboard, asp.net core, grpc + icon.png enable - + - - - - - - + + + + + + + + + + + True + + diff --git a/src/dashboards/blazor/ElsaDashboard.Backend/Extensions/ServiceCollectionExtensions.cs b/src/dashboards/blazor/ElsaDashboard.Backend/Extensions/ServiceCollectionExtensions.cs index 1eb1ca0b0..2c19b4783 100644 --- a/src/dashboards/blazor/ElsaDashboard.Backend/Extensions/ServiceCollectionExtensions.cs +++ b/src/dashboards/blazor/ElsaDashboard.Backend/Extensions/ServiceCollectionExtensions.cs @@ -2,7 +2,6 @@ using System.IO.Compression; using Elsa.Client.Extensions; using Elsa.Client.Options; -using Elsa.Client.Services; using ElsaDashboard.Backend.Rpc; using ElsaDashboard.Shared.Rpc; using ElsaDashboard.Shared.Surrogates; diff --git a/src/dashboards/blazor/ElsaDashboard.Backend/Rpc/WorkflowDefinitionService.cs b/src/dashboards/blazor/ElsaDashboard.Backend/Rpc/WorkflowDefinitionService.cs index efa74202b..255a48584 100644 --- a/src/dashboards/blazor/ElsaDashboard.Backend/Rpc/WorkflowDefinitionService.cs +++ b/src/dashboards/blazor/ElsaDashboard.Backend/Rpc/WorkflowDefinitionService.cs @@ -15,13 +15,13 @@ namespace ElsaDashboard.Backend.Rpc _elsaClient = elsaClient; } - public async Task> ListAsync(int? page, int? pageSize, VersionOptions? versionOptions, CallContext context) => - await _elsaClient.WorkflowDefinitions.ListAsync(page, pageSize, versionOptions, context.CancellationToken); + public async Task> ListAsync(ListWorkflowDefinitionsRequest request, CallContext context = default) => + await _elsaClient.WorkflowDefinitions.ListAsync(request.Page, request.PageSize, request.VersionOptions, context.CancellationToken); - public async Task GetById(string workflowDefinitionId, VersionOptions versionOptions, CallContext context = default) => - await _elsaClient.WorkflowDefinitions.GetByIdAsync(workflowDefinitionId, versionOptions, context.CancellationToken); + public async Task GetByIdAsync(GetWorkflowDefinitionByIdRequest request, CallContext context = default) => + await _elsaClient.WorkflowDefinitions.GetByIdAsync(request.WorkflowDefinitionId, request.VersionOptions ?? VersionOptions.Published, context.CancellationToken); - public Task GetByVersionIdAsync(string workflowDefinitionVersionId, CallContext context) => _elsaClient.WorkflowDefinitions.GetByVersionIdAsync(workflowDefinitionVersionId, context.CancellationToken); + public Task GetByVersionIdAsync(GetWorkflowDefinitionByVersionIdRequest request, CallContext context) => _elsaClient.WorkflowDefinitions.GetByVersionIdAsync(request.WorkflowDefinitionVersionId, context.CancellationToken); public async Task SaveAsync(SaveWorkflowDefinitionRequest request, CallContext context) => await _elsaClient.WorkflowDefinitions.SaveAsync(request, context.CancellationToken); } } \ No newline at end of file diff --git a/src/dashboards/blazor/ElsaDashboard.Backend/Rpc/WorkflowInstanceService.cs b/src/dashboards/blazor/ElsaDashboard.Backend/Rpc/WorkflowInstanceService.cs index c2d744d54..b859b2ebf 100644 --- a/src/dashboards/blazor/ElsaDashboard.Backend/Rpc/WorkflowInstanceService.cs +++ b/src/dashboards/blazor/ElsaDashboard.Backend/Rpc/WorkflowInstanceService.cs @@ -10,8 +10,8 @@ namespace ElsaDashboard.Backend.Rpc { private readonly IElsaClient _elsaClient; public WorkflowInstanceService(IElsaClient elsaClient) => _elsaClient = elsaClient; - public Task> ListAsync(int page = 0, int pageSize = 50, CallContext context = default) => _elsaClient.WorkflowInstances.ListAsync(page, pageSize, context.CancellationToken); - public Task GetByIdAsync(string id, CallContext context = default) => _elsaClient.WorkflowInstances.GetByIdAsync(id, context.CancellationToken); - public Task DeleteAsync(string id, CallContext context = default) => _elsaClient.WorkflowInstances.DeleteAsync(id, context.CancellationToken); + public Task> ListAsync(ListWorkflowInstancesRequest request, CallContext context = default) => _elsaClient.WorkflowInstances.ListAsync(request.Page, request.PageSize, context.CancellationToken); + public Task GetByIdAsync(GetWorkflowInstanceByIdRequest request, CallContext context = default) => _elsaClient.WorkflowInstances.GetByIdAsync(request.WorkflowInstanceId, context.CancellationToken); + public Task DeleteAsync(DeleteWorkflowInstanceRequest request, CallContext context = default) => _elsaClient.WorkflowInstances.DeleteAsync(request.WorkflowInstanceId, context.CancellationToken); } } \ No newline at end of file diff --git a/src/dashboards/blazor/ElsaDashboard.Backend/Rpc/WorkflowRegistryService.cs b/src/dashboards/blazor/ElsaDashboard.Backend/Rpc/WorkflowRegistryService.cs index a22cc94f2..860522cdb 100644 --- a/src/dashboards/blazor/ElsaDashboard.Backend/Rpc/WorkflowRegistryService.cs +++ b/src/dashboards/blazor/ElsaDashboard.Backend/Rpc/WorkflowRegistryService.cs @@ -11,9 +11,9 @@ namespace ElsaDashboard.Backend.Rpc private readonly IElsaClient _elsaClient; public WorkflowRegistryService(IElsaClient elsaClient) => _elsaClient = elsaClient; - public Task> ListAsync(int? page = default, int? pageSize = default, VersionOptions? versionOptions = default, CallContext context = default) => - _elsaClient.WorkflowRegistry.ListAsync(page, pageSize, versionOptions, context.CancellationToken); + public Task> ListAsync(ListWorkflowBlueprintsRequest request, CallContext context = default) => + _elsaClient.WorkflowRegistry.ListAsync(request.Page, request.PageSize, request.VersionOptions, context.CancellationToken); - public Task GetById(string id, VersionOptions versionOptions, CallContext context = default) => _elsaClient.WorkflowRegistry.GetByIdAsync(id, versionOptions, context.CancellationToken); + public Task GetById(GetWorkflowBlueprintByIdRequest request, CallContext context = default) => _elsaClient.WorkflowRegistry.GetByIdAsync(request.Id, request.VersionOptions, context.CancellationToken); } } \ No newline at end of file diff --git a/src/dashboards/blazor/ElsaDashboard.Backend/icon.png b/src/dashboards/blazor/ElsaDashboard.Backend/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..28dbaafbfe82119161a9b48c7e1fb59fef019c2f GIT binary patch literal 9825 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 Iv{~r?0hzVtHvj+t literal 0 HcmV?d00001 diff --git a/src/dashboards/blazor/ElsaDashboard.Shared/ElsaDashboard.Shared.csproj b/src/dashboards/blazor/ElsaDashboard.Shared/ElsaDashboard.Shared.csproj index c0bc2c39e..f83f1f21f 100644 --- a/src/dashboards/blazor/ElsaDashboard.Shared/ElsaDashboard.Shared.csproj +++ b/src/dashboards/blazor/ElsaDashboard.Shared/ElsaDashboard.Shared.csproj @@ -2,19 +2,39 @@ net5.0 + 1.0.0 + latest + Elsa Contributors + + Elsa is a set of workflow libraries and tools that enable lean and mean workflowing capabilities in any .NET Core application. + This package provides gRPC endpoint abstractions shared by the Elsa.Dashboard.Backend and Elsa.Dashboard.WebAssembly packages. + + 2020 + https://github.com/elsa-workflows/elsa-core + https://github.com/elsa-workflows/elsa-core + GitHub + elsa, workflows, dashboard, asp.net core, grpc + icon.png enable - + - - - - + + + + - + - + + + + + + True + + diff --git a/src/dashboards/blazor/ElsaDashboard.Shared/ElsaDashboard.Shared.csproj.DotSettings b/src/dashboards/blazor/ElsaDashboard.Shared/ElsaDashboard.Shared.csproj.DotSettings new file mode 100644 index 000000000..dad40ff58 --- /dev/null +++ b/src/dashboards/blazor/ElsaDashboard.Shared/ElsaDashboard.Shared.csproj.DotSettings @@ -0,0 +1,13 @@ + + True + True + True + True + True + True + True + True + True + True + True + True \ No newline at end of file diff --git a/src/dashboards/blazor/ElsaDashboard.Shared/Rpc/IActivityService.cs b/src/dashboards/blazor/ElsaDashboard.Shared/Rpc/Activity/Services/IActivityService.cs similarity index 84% rename from src/dashboards/blazor/ElsaDashboard.Shared/Rpc/IActivityService.cs rename to src/dashboards/blazor/ElsaDashboard.Shared/Rpc/Activity/Services/IActivityService.cs index 8745161cf..aa3530413 100644 --- a/src/dashboards/blazor/ElsaDashboard.Shared/Rpc/IActivityService.cs +++ b/src/dashboards/blazor/ElsaDashboard.Shared/Rpc/Activity/Services/IActivityService.cs @@ -4,11 +4,13 @@ using Elsa.Client.Models; using ProtoBuf.Grpc; using ProtoBuf.Grpc.Configuration; +// ReSharper disable once CheckNamespace namespace ElsaDashboard.Shared.Rpc { [Service] public interface IActivityService { + [Operation] Task> GetActivitiesAsync(CallContext context = default); } } \ No newline at end of file diff --git a/src/dashboards/blazor/ElsaDashboard.Shared/Rpc/IWorkflowDefinitionService.cs b/src/dashboards/blazor/ElsaDashboard.Shared/Rpc/IWorkflowDefinitionService.cs deleted file mode 100644 index 6f5ded84c..000000000 --- a/src/dashboards/blazor/ElsaDashboard.Shared/Rpc/IWorkflowDefinitionService.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System.Threading.Tasks; -using Elsa.Client.Models; -using ProtoBuf.Grpc; -using ProtoBuf.Grpc.Configuration; - -namespace ElsaDashboard.Shared.Rpc -{ - [Service] - public interface IWorkflowDefinitionService - { - Task> ListAsync(int? page = default, int? pageSize = default, VersionOptions? versionOptions = default, CallContext context = default); - Task GetById(string workflowDefinitionId, VersionOptions versionOptions, CallContext context = default); - Task GetByVersionIdAsync(string workflowDefinitionVersionId, CallContext context = default); - Task SaveAsync(SaveWorkflowDefinitionRequest request, CallContext context = default); - } -} \ No newline at end of file diff --git a/src/dashboards/blazor/ElsaDashboard.Shared/Rpc/IWorkflowInstanceService.cs b/src/dashboards/blazor/ElsaDashboard.Shared/Rpc/IWorkflowInstanceService.cs deleted file mode 100644 index 3fae085f6..000000000 --- a/src/dashboards/blazor/ElsaDashboard.Shared/Rpc/IWorkflowInstanceService.cs +++ /dev/null @@ -1,15 +0,0 @@ -using System.Threading.Tasks; -using Elsa.Client.Models; -using ProtoBuf.Grpc; -using ProtoBuf.Grpc.Configuration; - -namespace ElsaDashboard.Shared.Rpc -{ - [Service] - public interface IWorkflowInstanceService - { - Task> ListAsync(int page = 0, int pageSize = 50, CallContext context = default); - Task GetByIdAsync(string id, CallContext context = default); - Task DeleteAsync(string id, CallContext context = default); - } -} \ No newline at end of file diff --git a/src/dashboards/blazor/ElsaDashboard.Shared/Rpc/IWorkflowRegistryService.cs b/src/dashboards/blazor/ElsaDashboard.Shared/Rpc/IWorkflowRegistryService.cs deleted file mode 100644 index dd547351d..000000000 --- a/src/dashboards/blazor/ElsaDashboard.Shared/Rpc/IWorkflowRegistryService.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System.Threading.Tasks; -using Elsa.Client.Models; -using ProtoBuf.Grpc; -using ProtoBuf.Grpc.Configuration; - -namespace ElsaDashboard.Shared.Rpc -{ - [Service] - public interface IWorkflowRegistryService - { - Task> ListAsync(int? page = default, int? pageSize = default, VersionOptions? versionOptions = default, CallContext context = default); - Task GetById(string id, VersionOptions versionOptions, CallContext context = default); - } -} \ No newline at end of file diff --git a/src/dashboards/blazor/ElsaDashboard.Shared/Rpc/WorkflowDefinition/Extensions/WorkflowDefinitionServiceExtensions.cs b/src/dashboards/blazor/ElsaDashboard.Shared/Rpc/WorkflowDefinition/Extensions/WorkflowDefinitionServiceExtensions.cs new file mode 100644 index 000000000..8ea5dd703 --- /dev/null +++ b/src/dashboards/blazor/ElsaDashboard.Shared/Rpc/WorkflowDefinition/Extensions/WorkflowDefinitionServiceExtensions.cs @@ -0,0 +1,17 @@ +using System.Threading.Tasks; +using Elsa.Client.Models; + +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 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)); + } +} \ No newline at end of file diff --git a/src/dashboards/blazor/ElsaDashboard.Shared/Rpc/WorkflowDefinition/Models/GetWorkflowDefinitionByIdRequest.cs b/src/dashboards/blazor/ElsaDashboard.Shared/Rpc/WorkflowDefinition/Models/GetWorkflowDefinitionByIdRequest.cs new file mode 100644 index 000000000..514759ff9 --- /dev/null +++ b/src/dashboards/blazor/ElsaDashboard.Shared/Rpc/WorkflowDefinition/Models/GetWorkflowDefinitionByIdRequest.cs @@ -0,0 +1,22 @@ +using Elsa.Client.Models; +using ProtoBuf; + +namespace ElsaDashboard.Shared.Rpc +{ + [ProtoContract] + public class GetWorkflowDefinitionByIdRequest + { + public GetWorkflowDefinitionByIdRequest() + { + } + + public GetWorkflowDefinitionByIdRequest(string workflowDefinitionId, VersionOptions? versionOptions) + { + WorkflowDefinitionId = workflowDefinitionId; + VersionOptions = versionOptions; + } + + [ProtoMember(1)] public string WorkflowDefinitionId { get; set; } + [ProtoMember(2)] public VersionOptions? VersionOptions { get; set; } + } +} \ No newline at end of file diff --git a/src/dashboards/blazor/ElsaDashboard.Shared/Rpc/WorkflowDefinition/Models/GetWorkflowDefinitionByVersionIdRequest.cs b/src/dashboards/blazor/ElsaDashboard.Shared/Rpc/WorkflowDefinition/Models/GetWorkflowDefinitionByVersionIdRequest.cs new file mode 100644 index 000000000..53cd2073a --- /dev/null +++ b/src/dashboards/blazor/ElsaDashboard.Shared/Rpc/WorkflowDefinition/Models/GetWorkflowDefinitionByVersionIdRequest.cs @@ -0,0 +1,19 @@ +using ProtoBuf; + +namespace ElsaDashboard.Shared.Rpc +{ + [ProtoContract] + public class GetWorkflowDefinitionByVersionIdRequest + { + public GetWorkflowDefinitionByVersionIdRequest() + { + } + + public GetWorkflowDefinitionByVersionIdRequest(string workflowDefinitionVersionId) + { + WorkflowDefinitionVersionId = workflowDefinitionVersionId; + } + + [ProtoMember(1)] public string WorkflowDefinitionVersionId { get; set; } + } +} \ No newline at end of file diff --git a/src/dashboards/blazor/ElsaDashboard.Shared/Rpc/WorkflowDefinition/Models/ListWorkflowDefinitionsRequest.cs b/src/dashboards/blazor/ElsaDashboard.Shared/Rpc/WorkflowDefinition/Models/ListWorkflowDefinitionsRequest.cs new file mode 100644 index 000000000..620662114 --- /dev/null +++ b/src/dashboards/blazor/ElsaDashboard.Shared/Rpc/WorkflowDefinition/Models/ListWorkflowDefinitionsRequest.cs @@ -0,0 +1,24 @@ +using Elsa.Client.Models; +using ProtoBuf; + +namespace ElsaDashboard.Shared.Rpc +{ + [ProtoContract] + public class ListWorkflowDefinitionsRequest + { + public ListWorkflowDefinitionsRequest() + { + } + + public ListWorkflowDefinitionsRequest(int? page, int? pageSize, VersionOptions? versionOptions) + { + Page = page; + PageSize = pageSize; + VersionOptions = versionOptions; + } + + [ProtoMember(1)] public int? Page { get; set; } + [ProtoMember(2)] public int? PageSize { get; set; } + [ProtoMember(3)] public VersionOptions? VersionOptions { get; set; } + } +} \ No newline at end of file diff --git a/src/dashboards/blazor/ElsaDashboard.Shared/Rpc/WorkflowDefinition/Services/IWorkflowDefinitionService.cs b/src/dashboards/blazor/ElsaDashboard.Shared/Rpc/WorkflowDefinition/Services/IWorkflowDefinitionService.cs new file mode 100644 index 000000000..a5ed6e623 --- /dev/null +++ b/src/dashboards/blazor/ElsaDashboard.Shared/Rpc/WorkflowDefinition/Services/IWorkflowDefinitionService.cs @@ -0,0 +1,23 @@ +using System.Threading.Tasks; +using Elsa.Client.Models; +using ProtoBuf.Grpc; +using ProtoBuf.Grpc.Configuration; + +namespace ElsaDashboard.Shared.Rpc +{ + [Service] + public interface IWorkflowDefinitionService + { + [Operation] + Task> ListAsync(ListWorkflowDefinitionsRequest request, CallContext context = default); + + [Operation] + Task GetByIdAsync(GetWorkflowDefinitionByIdRequest request, CallContext context = default); + + [Operation] + Task GetByVersionIdAsync(GetWorkflowDefinitionByVersionIdRequest request, CallContext context = default); + + [Operation] + Task SaveAsync(SaveWorkflowDefinitionRequest request, CallContext context = default); + } +} \ No newline at end of file diff --git a/src/dashboards/blazor/ElsaDashboard.Shared/Rpc/WorkflowInstance/Extensions/WorkflowInstanceServiceExtensions.cs b/src/dashboards/blazor/ElsaDashboard.Shared/Rpc/WorkflowInstance/Extensions/WorkflowInstanceServiceExtensions.cs new file mode 100644 index 000000000..9b1a7719f --- /dev/null +++ b/src/dashboards/blazor/ElsaDashboard.Shared/Rpc/WorkflowInstance/Extensions/WorkflowInstanceServiceExtensions.cs @@ -0,0 +1,13 @@ +using System.Threading.Tasks; +using Elsa.Client.Models; + +// ReSharper disable once CheckNamespace +namespace ElsaDashboard.Shared.Rpc +{ + public static class WorkflowInstanceServiceExtensions + { + public static Task> ListAsync(this IWorkflowInstanceService service, int page = 0, int pageSize = 50) => service.ListAsync(new ListWorkflowInstancesRequest(page, pageSize)); + public static Task GetByIdAsync(this IWorkflowInstanceService service, string workflowInstanceId) => service.GetByIdAsync(new GetWorkflowInstanceByIdRequest(workflowInstanceId)); + public static Task DeleteAsync(this IWorkflowInstanceService service, string workflowInstanceId) => service.DeleteAsync(new DeleteWorkflowInstanceRequest(workflowInstanceId)); + } +} \ No newline at end of file diff --git a/src/dashboards/blazor/ElsaDashboard.Shared/Rpc/WorkflowInstance/Models/DeleteWorkflowInstanceRequest.cs b/src/dashboards/blazor/ElsaDashboard.Shared/Rpc/WorkflowInstance/Models/DeleteWorkflowInstanceRequest.cs new file mode 100644 index 000000000..c081b2539 --- /dev/null +++ b/src/dashboards/blazor/ElsaDashboard.Shared/Rpc/WorkflowInstance/Models/DeleteWorkflowInstanceRequest.cs @@ -0,0 +1,20 @@ +using ProtoBuf; + +// ReSharper disable once CheckNamespace +namespace ElsaDashboard.Shared.Rpc +{ + [ProtoContract] + public class DeleteWorkflowInstanceRequest + { + public DeleteWorkflowInstanceRequest() + { + } + + public DeleteWorkflowInstanceRequest(string workflowInstanceId) + { + WorkflowInstanceId = workflowInstanceId; + } + + [ProtoMember(1)] public string WorkflowInstanceId { get; set; } + } +} \ No newline at end of file diff --git a/src/dashboards/blazor/ElsaDashboard.Shared/Rpc/WorkflowInstance/Models/GetWorkflowInstanceByIdRequest.cs b/src/dashboards/blazor/ElsaDashboard.Shared/Rpc/WorkflowInstance/Models/GetWorkflowInstanceByIdRequest.cs new file mode 100644 index 000000000..da0f34526 --- /dev/null +++ b/src/dashboards/blazor/ElsaDashboard.Shared/Rpc/WorkflowInstance/Models/GetWorkflowInstanceByIdRequest.cs @@ -0,0 +1,20 @@ +using ProtoBuf; + +// ReSharper disable once CheckNamespace +namespace ElsaDashboard.Shared.Rpc +{ + [ProtoContract] + public class GetWorkflowInstanceByIdRequest + { + public GetWorkflowInstanceByIdRequest() + { + } + + public GetWorkflowInstanceByIdRequest(string workflowInstanceId) + { + WorkflowInstanceId = workflowInstanceId; + } + + [ProtoMember(1)] public string WorkflowInstanceId { get; set; } + } +} \ No newline at end of file diff --git a/src/dashboards/blazor/ElsaDashboard.Shared/Rpc/WorkflowInstance/Models/ListWorkflowInstancesRequest.cs b/src/dashboards/blazor/ElsaDashboard.Shared/Rpc/WorkflowInstance/Models/ListWorkflowInstancesRequest.cs new file mode 100644 index 000000000..f1d27e0d1 --- /dev/null +++ b/src/dashboards/blazor/ElsaDashboard.Shared/Rpc/WorkflowInstance/Models/ListWorkflowInstancesRequest.cs @@ -0,0 +1,22 @@ +using ProtoBuf; + +// ReSharper disable once CheckNamespace +namespace ElsaDashboard.Shared.Rpc +{ + [ProtoContract] + public class ListWorkflowInstancesRequest + { + public ListWorkflowInstancesRequest() + { + } + + public ListWorkflowInstancesRequest(int page, int pageSize = 50) + { + Page = page; + PageSize = pageSize; + } + + [ProtoMember(1)] public int Page { get; set; } + [ProtoMember(2)] public int PageSize { get; set; } = 50; + } +} \ No newline at end of file diff --git a/src/dashboards/blazor/ElsaDashboard.Shared/Rpc/WorkflowInstance/Services/IWorkflowInstanceService.cs b/src/dashboards/blazor/ElsaDashboard.Shared/Rpc/WorkflowInstance/Services/IWorkflowInstanceService.cs new file mode 100644 index 000000000..308ee2c39 --- /dev/null +++ b/src/dashboards/blazor/ElsaDashboard.Shared/Rpc/WorkflowInstance/Services/IWorkflowInstanceService.cs @@ -0,0 +1,21 @@ +using System.Threading.Tasks; +using Elsa.Client.Models; +using ProtoBuf.Grpc; +using ProtoBuf.Grpc.Configuration; + +// ReSharper disable once CheckNamespace +namespace ElsaDashboard.Shared.Rpc +{ + [Service] + public interface IWorkflowInstanceService + { + [Operation] + Task> ListAsync(ListWorkflowInstancesRequest request, CallContext context = default); + + [Operation] + Task GetByIdAsync(GetWorkflowInstanceByIdRequest request, CallContext context = default); + + [Operation] + Task DeleteAsync(DeleteWorkflowInstanceRequest request, CallContext context = default); + } +} \ No newline at end of file diff --git a/src/dashboards/blazor/ElsaDashboard.Shared/Rpc/WorkflowRegistry/Extensions/WorkflowRegistryServiceExtensions.cs b/src/dashboards/blazor/ElsaDashboard.Shared/Rpc/WorkflowRegistry/Extensions/WorkflowRegistryServiceExtensions.cs new file mode 100644 index 000000000..671b0fcb4 --- /dev/null +++ b/src/dashboards/blazor/ElsaDashboard.Shared/Rpc/WorkflowRegistry/Extensions/WorkflowRegistryServiceExtensions.cs @@ -0,0 +1,13 @@ +using System.Threading.Tasks; +using Elsa.Client.Models; + +namespace ElsaDashboard.Shared.Rpc +{ + public static class WorkflowRegistryServiceExtensions + { + public static Task> ListAsync(this IWorkflowRegistryService service, int? page = default, int? pageSize = default, VersionOptions? versionOptions = default) => + service.ListAsync(new ListWorkflowBlueprintsRequest(page, pageSize, versionOptions)); + + public static Task GetById(this IWorkflowRegistryService service, string id, VersionOptions versionOptions) => service.GetById(new GetWorkflowBlueprintByIdRequest(id, versionOptions)); + } +} \ No newline at end of file diff --git a/src/dashboards/blazor/ElsaDashboard.Shared/Rpc/WorkflowRegistry/Models/GetWorkflowBlueprintByIdRequest.cs b/src/dashboards/blazor/ElsaDashboard.Shared/Rpc/WorkflowRegistry/Models/GetWorkflowBlueprintByIdRequest.cs new file mode 100644 index 000000000..7f2c0d1ba --- /dev/null +++ b/src/dashboards/blazor/ElsaDashboard.Shared/Rpc/WorkflowRegistry/Models/GetWorkflowBlueprintByIdRequest.cs @@ -0,0 +1,22 @@ +using Elsa.Client.Models; +using ProtoBuf; + +namespace ElsaDashboard.Shared.Rpc +{ + [ProtoContract] + public class GetWorkflowBlueprintByIdRequest + { + public GetWorkflowBlueprintByIdRequest() + { + } + + public GetWorkflowBlueprintByIdRequest(string id, VersionOptions versionOptions) + { + Id = id; + VersionOptions = versionOptions; + } + + [ProtoMember(1)] public string Id { get; set; } = default!; + [ProtoMember(2)] public VersionOptions VersionOptions { get; set; } + } +} \ No newline at end of file diff --git a/src/dashboards/blazor/ElsaDashboard.Shared/Rpc/WorkflowRegistry/Models/ListWorkflowBlueprintsRequest.cs b/src/dashboards/blazor/ElsaDashboard.Shared/Rpc/WorkflowRegistry/Models/ListWorkflowBlueprintsRequest.cs new file mode 100644 index 000000000..22be68429 --- /dev/null +++ b/src/dashboards/blazor/ElsaDashboard.Shared/Rpc/WorkflowRegistry/Models/ListWorkflowBlueprintsRequest.cs @@ -0,0 +1,24 @@ +using Elsa.Client.Models; +using ProtoBuf; + +namespace ElsaDashboard.Shared.Rpc +{ + [ProtoContract] + public class ListWorkflowBlueprintsRequest + { + public ListWorkflowBlueprintsRequest() + { + } + + public ListWorkflowBlueprintsRequest(int? page, int? pageSize, VersionOptions? versionOptions) + { + Page = page; + PageSize = pageSize; + VersionOptions = versionOptions; + } + + [ProtoMember(1)] public int? Page { get; set; } + [ProtoMember(2)] public int? PageSize { get; set; } + [ProtoMember(3)] public VersionOptions? VersionOptions { get; set; } + } +} \ No newline at end of file diff --git a/src/dashboards/blazor/ElsaDashboard.Shared/Rpc/WorkflowRegistry/Services/IWorkflowRegistryService.cs b/src/dashboards/blazor/ElsaDashboard.Shared/Rpc/WorkflowRegistry/Services/IWorkflowRegistryService.cs new file mode 100644 index 000000000..6a8933299 --- /dev/null +++ b/src/dashboards/blazor/ElsaDashboard.Shared/Rpc/WorkflowRegistry/Services/IWorkflowRegistryService.cs @@ -0,0 +1,17 @@ +using System.Threading.Tasks; +using Elsa.Client.Models; +using ProtoBuf.Grpc; +using ProtoBuf.Grpc.Configuration; + +namespace ElsaDashboard.Shared.Rpc +{ + [Service] + public interface IWorkflowRegistryService + { + [Operation] + Task> ListAsync(ListWorkflowBlueprintsRequest request, CallContext context = default); + + [Operation] + Task GetById(GetWorkflowBlueprintByIdRequest request, CallContext context = default); + } +} \ No newline at end of file diff --git a/src/dashboards/blazor/ElsaDashboard.Shared/Surrogates/RuntimeTypeModelExtensions.cs b/src/dashboards/blazor/ElsaDashboard.Shared/Surrogates/RuntimeTypeModelExtensions.cs index 8187d3751..4192e7df5 100644 --- a/src/dashboards/blazor/ElsaDashboard.Shared/Surrogates/RuntimeTypeModelExtensions.cs +++ b/src/dashboards/blazor/ElsaDashboard.Shared/Surrogates/RuntimeTypeModelExtensions.cs @@ -14,7 +14,9 @@ namespace ElsaDashboard.Shared.Surrogates { [typeof(ActivityPropertyInfo)] = typeof(ActivityPropertyDescriptorSurrogate), [typeof(VersionOptions)] = typeof(VersionOptionsSurrogate), - [typeof(WorkflowInstance)] = typeof(WorkflowInstanceSurrogate) + [typeof(WorkflowInstance)] = typeof(WorkflowInstanceSurrogate), + [typeof(WorkflowDefinition)] = typeof(WorkflowDefinitionSurrogate), + [typeof(WorkflowBlueprint)] = typeof(WorkflowBlueprintSurrogate) }; /// diff --git a/src/dashboards/blazor/ElsaDashboard.Shared/Surrogates/WorkflowBlueprintSurrogate.cs b/src/dashboards/blazor/ElsaDashboard.Shared/Surrogates/WorkflowBlueprintSurrogate.cs new file mode 100644 index 000000000..2bf2de8a6 --- /dev/null +++ b/src/dashboards/blazor/ElsaDashboard.Shared/Surrogates/WorkflowBlueprintSurrogate.cs @@ -0,0 +1,35 @@ +using Elsa.Client.Models; +using Newtonsoft.Json; +using NodaTime; +using NodaTime.Serialization.JsonNet; +using ProtoBuf; + +namespace ElsaDashboard.Shared.Surrogates +{ + [ProtoContract(IgnoreListHandling = true)] + public class WorkflowBlueprintSurrogate + { + private static readonly JsonSerializerSettings SerializerSettings; + + static WorkflowBlueprintSurrogate() + { + SerializerSettings = new JsonSerializerSettings + { + TypeNameHandling = TypeNameHandling.Auto + }.ConfigureForNodaTime(DateTimeZoneProviders.Tzdb); + } + + public WorkflowBlueprintSurrogate(WorkflowBlueprint value) + { + Value = Serialize(value); + } + + [ProtoMember(1)] public string Value { get; } + + public static implicit operator WorkflowBlueprint(WorkflowBlueprintSurrogate surrogate) => Deserialize(surrogate.Value)!; + public static implicit operator WorkflowBlueprintSurrogate(WorkflowBlueprint source) => new(source); + + private static WorkflowBlueprint Deserialize(string json) => JsonConvert.DeserializeObject(json, SerializerSettings)!; + private static string Serialize(WorkflowBlueprint value) => JsonConvert.SerializeObject(value, SerializerSettings)!; + } +} \ No newline at end of file diff --git a/src/dashboards/blazor/ElsaDashboard.Shared/Surrogates/WorkflowDefinitionSurrogate.cs b/src/dashboards/blazor/ElsaDashboard.Shared/Surrogates/WorkflowDefinitionSurrogate.cs new file mode 100644 index 000000000..54a241c97 --- /dev/null +++ b/src/dashboards/blazor/ElsaDashboard.Shared/Surrogates/WorkflowDefinitionSurrogate.cs @@ -0,0 +1,35 @@ +using Elsa.Client.Models; +using Newtonsoft.Json; +using NodaTime; +using NodaTime.Serialization.JsonNet; +using ProtoBuf; + +namespace ElsaDashboard.Shared.Surrogates +{ + [ProtoContract(IgnoreListHandling = true)] + public class WorkflowDefinitionSurrogate + { + private static readonly JsonSerializerSettings SerializerSettings; + + static WorkflowDefinitionSurrogate() + { + SerializerSettings = new JsonSerializerSettings + { + TypeNameHandling = TypeNameHandling.Auto + }.ConfigureForNodaTime(DateTimeZoneProviders.Tzdb); + } + + public WorkflowDefinitionSurrogate(WorkflowDefinition value) + { + Value = Serialize(value); + } + + [ProtoMember(1)] public string Value { get; } + + public static implicit operator WorkflowDefinition(WorkflowDefinitionSurrogate surrogate) => Deserialize(surrogate.Value)!; + public static implicit operator WorkflowDefinitionSurrogate(WorkflowDefinition source) => new(source); + + private static WorkflowDefinition Deserialize(string json) => JsonConvert.DeserializeObject(json, SerializerSettings)!; + private static string Serialize(WorkflowDefinition value) => JsonConvert.SerializeObject(value, SerializerSettings)!; + } +} \ No newline at end of file diff --git a/src/dashboards/blazor/ElsaDashboard.Shared/Surrogates/WorkflowInstanceSurrogate.cs b/src/dashboards/blazor/ElsaDashboard.Shared/Surrogates/WorkflowInstanceSurrogate.cs index 02975c555..4b1e3d805 100644 --- a/src/dashboards/blazor/ElsaDashboard.Shared/Surrogates/WorkflowInstanceSurrogate.cs +++ b/src/dashboards/blazor/ElsaDashboard.Shared/Surrogates/WorkflowInstanceSurrogate.cs @@ -10,7 +10,7 @@ namespace ElsaDashboard.Shared.Surrogates public class WorkflowInstanceSurrogate { private static readonly JsonSerializerSettings SerializerSettings; - + static WorkflowInstanceSurrogate() { SerializerSettings = new JsonSerializerSettings @@ -25,7 +25,7 @@ namespace ElsaDashboard.Shared.Surrogates } [ProtoMember(1)] public string Value { get; } - + public static implicit operator WorkflowInstance(WorkflowInstanceSurrogate surrogate) => Deserialize(surrogate.Value)!; public static implicit operator WorkflowInstanceSurrogate(WorkflowInstance source) => new(source); diff --git a/src/dashboards/blazor/ElsaDashboard.Shared/icon.png b/src/dashboards/blazor/ElsaDashboard.Shared/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..28dbaafbfe82119161a9b48c7e1fb59fef019c2f GIT binary patch literal 9825 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 Iv{~r?0hzVtHvj+t literal 0 HcmV?d00001 diff --git a/src/dashboards/blazor/ElsaDashboard.WebAssembly/ElsaDashboard.WebAssembly.csproj b/src/dashboards/blazor/ElsaDashboard.WebAssembly/ElsaDashboard.WebAssembly.csproj index 4511dd6b2..412b51d02 100644 --- a/src/dashboards/blazor/ElsaDashboard.WebAssembly/ElsaDashboard.WebAssembly.csproj +++ b/src/dashboards/blazor/ElsaDashboard.WebAssembly/ElsaDashboard.WebAssembly.csproj @@ -2,15 +2,37 @@ net5.0 + 1.0.0 + latest + Elsa Contributors + + Elsa is a set of workflow libraries and tools that enable lean and mean workflowing capabilities in any .NET Core application. + This package provides gRPC client implementations for use within the Blazor WebAssembly imlementation of the Elsa Dashboard. + + 2020 + https://github.com/elsa-workflows/elsa-core + https://github.com/elsa-workflows/elsa-core + GitHub + elsa, workflows, dashboard, asp.net core, blazo, webassemblyr + icon.png + enable + - + - + + + + + + True + + diff --git a/src/dashboards/blazor/ElsaDashboard.WebAssembly/Extensions/GrpcServicesServiceCollectionExtensions.cs b/src/dashboards/blazor/ElsaDashboard.WebAssembly/Extensions/GrpcServicesServiceCollectionExtensions.cs index 8c5c142af..c4723b3f6 100644 --- a/src/dashboards/blazor/ElsaDashboard.WebAssembly/Extensions/GrpcServicesServiceCollectionExtensions.cs +++ b/src/dashboards/blazor/ElsaDashboard.WebAssembly/Extensions/GrpcServicesServiceCollectionExtensions.cs @@ -3,6 +3,7 @@ using System.Net.Http; using Grpc.Core; using Grpc.Net.Client; using Grpc.Net.Client.Web; +using Microsoft.AspNetCore.Components; using Microsoft.Extensions.DependencyInjection; using ProtoBuf.Grpc.Client; @@ -15,8 +16,8 @@ namespace ElsaDashboard.WebAssembly.Extensions private static GrpcChannel CreateGrpcChannel(IServiceProvider sp) { - //var navigationManager = sp.GetRequiredService(); - var backendUrl = "https://localhost:53451"; //navigationManager.BaseUri; + var navigationManager = sp.GetRequiredService(); + var backendUrl = navigationManager.BaseUri; var httpClient = new HttpClient(new GrpcWebHandler(GrpcWebMode.GrpcWeb, new HttpClientHandler())); //var tokenManager = sp.GetRequiredService(); diff --git a/src/dashboards/blazor/ElsaDashboard.WebAssembly/Extensions/ServiceCollectionExtensions.cs b/src/dashboards/blazor/ElsaDashboard.WebAssembly/Extensions/ServiceCollectionExtensions.cs index fefb7348f..fe141a6de 100644 --- a/src/dashboards/blazor/ElsaDashboard.WebAssembly/Extensions/ServiceCollectionExtensions.cs +++ b/src/dashboards/blazor/ElsaDashboard.WebAssembly/Extensions/ServiceCollectionExtensions.cs @@ -13,7 +13,9 @@ namespace ElsaDashboard.WebAssembly.Extensions RuntimeTypeModel.Default.AddNodaTime(); return services .AddGrpcClient() - .AddGrpcClient(); + .AddGrpcClient() + .AddGrpcClient() + .AddGrpcClient(); } } } \ No newline at end of file diff --git a/src/dashboards/blazor/ElsaDashboard.WebAssembly/icon.png b/src/dashboards/blazor/ElsaDashboard.WebAssembly/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..28dbaafbfe82119161a9b48c7e1fb59fef019c2f GIT binary patch literal 9825 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 Iv{~r?0hzVtHvj+t literal 0 HcmV?d00001 diff --git a/src/server/Elsa.Server.Api/Elsa.Server.Api.csproj b/src/server/Elsa.Server.Api/Elsa.Server.Api.csproj index e87ab5361..316f6573b 100644 --- a/src/server/Elsa.Server.Api/Elsa.Server.Api.csproj +++ b/src/server/Elsa.Server.Api/Elsa.Server.Api.csproj @@ -18,10 +18,6 @@ enable - - - -