From dd16c1921f2f5d732afae1fc8f06d7f982fd2098 Mon Sep 17 00:00:00 2001 From: axeleron007 Date: Thu, 16 Sep 2021 12:51:27 +0300 Subject: [PATCH] Fix to Test run mode. --- .../Activities/HttpEndpoint/HttpEndpoint.cs | 8 ++++++-- .../Middleware/HttpEndpointMiddleware.cs | 4 ++-- src/core/Elsa.Core/Handlers/UpdateBookmarks.cs | 7 +++++-- .../elsa-workflow-properties-panel.tsx | 4 ---- src/designer/elsa-workflows-studio/src/models/domain.ts | 1 - .../Providers/JsonTypeScriptDefinitionProvider.cs | 7 ++----- .../Handlers/ActivityExecutionResultExecutedHandler.cs | 4 +--- src/server/Elsa.Server.Api/Models/WorkflowTestMessage.cs | 4 ---- .../Elsa.Server.Api/Services/IWorkflowTestService.cs | 2 +- .../Elsa.Server.Api/Services/WorkflowTestService.cs | 4 ++-- 10 files changed, 19 insertions(+), 26 deletions(-) diff --git a/src/activities/Elsa.Activities.Http/Activities/HttpEndpoint/HttpEndpoint.cs b/src/activities/Elsa.Activities.Http/Activities/HttpEndpoint/HttpEndpoint.cs index 8318f9712..cb5372e1b 100644 --- a/src/activities/Elsa.Activities.Http/Activities/HttpEndpoint/HttpEndpoint.cs +++ b/src/activities/Elsa.Activities.Http/Activities/HttpEndpoint/HttpEndpoint.cs @@ -81,8 +81,12 @@ namespace Elsa.Activities.Http [ActivityOutput(Hint = "The received HTTP request.")] public HttpRequestModel? Output { get; set; } - protected override IActivityExecutionResult OnExecute(ActivityExecutionContext context) => - context.WorkflowExecutionContext.IsFirstPass && !context.WorkflowExecutionContext.WorkflowBlueprint.IsTestRun ? ExecuteInternal(context) : Suspend(); + protected override IActivityExecutionResult OnExecute(ActivityExecutionContext context) + { + var result = context.WorkflowExecutionContext.IsFirstPass && !context.WorkflowExecutionContext.WorkflowBlueprint.IsTestRun ? ExecuteInternal(context) : Suspend(); + context.WorkflowExecutionContext.WorkflowBlueprint.IsTestRun = false; + return result; + } protected override IActivityExecutionResult OnResume(ActivityExecutionContext context) => ExecuteInternal(context); private IActivityExecutionResult ExecuteInternal(ActivityExecutionContext context) diff --git a/src/activities/Elsa.Activities.Http/Middleware/HttpEndpointMiddleware.cs b/src/activities/Elsa.Activities.Http/Middleware/HttpEndpointMiddleware.cs index 29de09c1e..ab69029cc 100644 --- a/src/activities/Elsa.Activities.Http/Middleware/HttpEndpointMiddleware.cs +++ b/src/activities/Elsa.Activities.Http/Middleware/HttpEndpointMiddleware.cs @@ -76,8 +76,8 @@ namespace Elsa.Activities.Http.Middleware } var isTestRun = pendingWorkflowInstance.MetaData.FirstOrDefault(x => x.Key == "isTestRun").Value; - var workflowBlueprint = (isTestRun != null && Convert.ToBoolean(isTestRun)) ? - await workflowRegistry.FindAsync(x => x.Id == pendingWorkflowInstance.DefinitionId, cancellationToken) : + var workflowBlueprint = (isTestRun != null && Convert.ToBoolean(isTestRun)) ? + await workflowRegistry.FindAsync(x => x.Id == pendingWorkflowInstance.DefinitionId, cancellationToken) : await workflowRegistry.FindAsync(x => x.IsPublished && x.Id == pendingWorkflowInstance.DefinitionId && !x.IsDisabled, cancellationToken); if (workflowBlueprint is null) diff --git a/src/core/Elsa.Core/Handlers/UpdateBookmarks.cs b/src/core/Elsa.Core/Handlers/UpdateBookmarks.cs index b446bc02b..b5e01e22e 100644 --- a/src/core/Elsa.Core/Handlers/UpdateBookmarks.cs +++ b/src/core/Elsa.Core/Handlers/UpdateBookmarks.cs @@ -1,9 +1,9 @@ +using System; using System.Linq; using System.Threading; using System.Threading.Tasks; using Elsa.Events; using Elsa.Services; -using Elsa.Services.Bookmarks; using MediatR; namespace Elsa.Handlers @@ -20,7 +20,10 @@ namespace Elsa.Handlers public async Task Handle(WorkflowInstanceSaved notification, CancellationToken cancellationToken) { var workflowInstance = notification.WorkflowInstance; - await _bookmarkIndexer.IndexBookmarksAsync(workflowInstance, cancellationToken); + + //var isTestRun = workflowInstance.MetaData.FirstOrDefault(x => x.Key == "isTestRun"); + //if (!Convert.ToBoolean(isTestRun.Value)) + await _bookmarkIndexer.IndexBookmarksAsync(workflowInstance, cancellationToken); } public async Task Handle(ManyWorkflowInstancesDeleted notification, CancellationToken cancellationToken) diff --git a/src/designer/elsa-workflows-studio/src/components/screens/workflow-definition-editor/elsa-workflow-properties-panel/elsa-workflow-properties-panel.tsx b/src/designer/elsa-workflows-studio/src/components/screens/workflow-definition-editor/elsa-workflow-properties-panel/elsa-workflow-properties-panel.tsx index 9d697b4b9..e4f3b0d44 100644 --- a/src/designer/elsa-workflows-studio/src/components/screens/workflow-definition-editor/elsa-workflow-properties-panel/elsa-workflow-properties-panel.tsx +++ b/src/designer/elsa-workflows-studio/src/components/screens/workflow-definition-editor/elsa-workflow-properties-panel/elsa-workflow-properties-panel.tsx @@ -333,10 +333,6 @@ export class ElsaWorkflowPropertiesPanel { return (
-
-
{t('Instance Id')}
-
{testActivity.workflowInstanceId}
-
{t('Correlation Id')}
{testActivity.correlationId}
diff --git a/src/designer/elsa-workflows-studio/src/models/domain.ts b/src/designer/elsa-workflows-studio/src/models/domain.ts index 8fc6b9ae6..52d205008 100644 --- a/src/designer/elsa-workflows-studio/src/models/domain.ts +++ b/src/designer/elsa-workflows-studio/src/models/domain.ts @@ -324,7 +324,6 @@ export class SyntaxNames { } export interface WorkflowTestActivityMessage { - workflowInstanceId: string; correlationId: string; activityId: string; status: string; diff --git a/src/scripting/Elsa.Scripting.JavaScript/Providers/JsonTypeScriptDefinitionProvider.cs b/src/scripting/Elsa.Scripting.JavaScript/Providers/JsonTypeScriptDefinitionProvider.cs index 3f9a5564a..55f6d2ea7 100644 --- a/src/scripting/Elsa.Scripting.JavaScript/Providers/JsonTypeScriptDefinitionProvider.cs +++ b/src/scripting/Elsa.Scripting.JavaScript/Providers/JsonTypeScriptDefinitionProvider.cs @@ -1,14 +1,10 @@ -using System; using System.Collections.Generic; using System.Dynamic; using System.Linq; -using System.Reflection; using System.Text; using System.Threading; using System.Threading.Tasks; -using AutoMapper.Internal; using Elsa.Models; -using Elsa.Scripting.JavaScript.Events; using Elsa.Scripting.JavaScript.Providers; using MediatR; using Newtonsoft.Json; @@ -46,7 +42,8 @@ namespace Elsa.Scripting.JavaScript.Services #pragma warning disable CS8600 // Converting null literal or possible null value to non-nullable type. dynamic data = JsonConvert.DeserializeObject(json, new ExpandoObjectConverter()); #pragma warning restore CS8600 // Converting null literal or possible null value to non-nullable type. - string title = data != null ? data.title : "Schema"; + string? title = data != null ? data.title : null; + title = title != null ? title : "schema"; var schema = await JsonSchema.FromJsonAsync(json); var generator = new TypeScriptGenerator(schema, new TypeScriptGeneratorSettings { diff --git a/src/server/Elsa.Server.Api/Handlers/ActivityExecutionResultExecutedHandler.cs b/src/server/Elsa.Server.Api/Handlers/ActivityExecutionResultExecutedHandler.cs index 73899d4dd..4c794eba3 100644 --- a/src/server/Elsa.Server.Api/Handlers/ActivityExecutionResultExecutedHandler.cs +++ b/src/server/Elsa.Server.Api/Handlers/ActivityExecutionResultExecutedHandler.cs @@ -36,8 +36,6 @@ namespace Elsa.Server.Api.Handlers var message = new WorkflowTestMessage { - SignalRConnectionId = signalRConnectionId, - WorkflowInstanceId = context.WorkflowInstance.Id, CorrelationId = context.CorrelationId, ActivityId = context.ActivityId, Status = context.WorkflowExecutionContext.Status == WorkflowStatus.Running @@ -46,7 +44,7 @@ namespace Elsa.Server.Api.Handlers Data = JsonConvert.SerializeObject(data, Formatting.Indented) }; - await _workflowTestService.DispatchMessage(message); + await _workflowTestService.DispatchMessage(signalRConnectionId, message); } } } \ No newline at end of file diff --git a/src/server/Elsa.Server.Api/Models/WorkflowTestMessage.cs b/src/server/Elsa.Server.Api/Models/WorkflowTestMessage.cs index 2c0bc34a6..32273be41 100644 --- a/src/server/Elsa.Server.Api/Models/WorkflowTestMessage.cs +++ b/src/server/Elsa.Server.Api/Models/WorkflowTestMessage.cs @@ -1,11 +1,7 @@ -using Newtonsoft.Json.Linq; - namespace Elsa.Server.Api.Models { public class WorkflowTestMessage { - public string SignalRConnectionId { get; set; } = default!; - public string WorkflowInstanceId { get; set; } = default!; public string CorrelationId { get; set; } = default!; public string ActivityId { get; set; } = default!; public string Status { get; set; } = default!; diff --git a/src/server/Elsa.Server.Api/Services/IWorkflowTestService.cs b/src/server/Elsa.Server.Api/Services/IWorkflowTestService.cs index d30899639..74af81d5d 100644 --- a/src/server/Elsa.Server.Api/Services/IWorkflowTestService.cs +++ b/src/server/Elsa.Server.Api/Services/IWorkflowTestService.cs @@ -5,6 +5,6 @@ namespace Elsa.Server.Api.Services { public interface IWorkflowTestService { - Task DispatchMessage(WorkflowTestMessage message); + Task DispatchMessage(string signalRConnectionId, WorkflowTestMessage message); } } diff --git a/src/server/Elsa.Server.Api/Services/WorkflowTestService.cs b/src/server/Elsa.Server.Api/Services/WorkflowTestService.cs index 64aa1f23c..c4f630b58 100644 --- a/src/server/Elsa.Server.Api/Services/WorkflowTestService.cs +++ b/src/server/Elsa.Server.Api/Services/WorkflowTestService.cs @@ -14,9 +14,9 @@ namespace Elsa.Server.Api.Services _hubContext = hubContext; } - public async Task DispatchMessage(WorkflowTestMessage message) + public async Task DispatchMessage(string signalRConnectionId, WorkflowTestMessage message) { - await _hubContext.Clients.Client(message.SignalRConnectionId).SendAsync("DispatchMessage", message); + await _hubContext.Clients.Client(signalRConnectionId).SendAsync("DispatchMessage", message); } } }