Consider sessionId in publish event +

Upgrade package to 1.1.0-preview.21
This commit is contained in:
Behzad Alizadeh
2026-07-22 10:52:25 +03:30
parent 2b15c8a1af
commit 83738f809b
7 changed files with 310 additions and 63 deletions
@@ -14,6 +14,7 @@ using Elsa.Workflows.Runtime.Messages;
using Microsoft.Extensions.DependencyInjection;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq;
using San.MongoLogger;
using System.Diagnostics;
using System.Dynamic;
@@ -292,22 +293,34 @@ public class WorkflowService : IWorkflowService, ILoggable
return response;
}
dynamic payload = null;
ExpandoObject payload;
if (input.EventData.ValueKind != JsonValueKind.Undefined &&
input.EventData.ValueKind != JsonValueKind.Null)
var payloadObject = new JObject();
if (input.EventData.ValueKind is not JsonValueKind.Undefined
and not JsonValueKind.Null)
{
var json = input.EventData.GetRawText();
if (input.EventData.ValueKind != JsonValueKind.Object)
throw new InvalidOperationException("EventData must be a JSON object.");
var settings = new JsonSerializerSettings
{
Converters = { new ExpandoObjectConverter() }
};
// تبدیل JSON به object داینامیک
payload = JsonConvert.DeserializeObject<ExpandoObject>(json, settings);
payloadObject = JObject.Parse(input.EventData.GetRawText());
}
if (!string.IsNullOrWhiteSpace(input.SessionId))
{
payloadObject["SessionId"] = input.SessionId;
}
var settings = new JsonSerializerSettings
{
Converters = { new ExpandoObjectConverter() }
};
payload = JsonConvert.DeserializeObject<ExpandoObject>(
payloadObject.ToString(Formatting.None),
settings
) ?? new ExpandoObject();
//await _eventPublisher.PublishAsync(input.EventName, null, input.WorkflowInstanceId, null, input.EventData, asynchronous: true);
await _eventPublisher.PublishAsync(input.EventName, null, input.WorkflowInstanceId, null, payload);