diff --git a/Caspian.WorkflowFramework.Package/Caspian.WorkflowFramework.Package.csproj b/Caspian.WorkflowFramework.Package/Caspian.WorkflowFramework.Package.csproj
index b8be202..e6856d5 100644
--- a/Caspian.WorkflowFramework.Package/Caspian.WorkflowFramework.Package.csproj
+++ b/Caspian.WorkflowFramework.Package/Caspian.WorkflowFramework.Package.csproj
@@ -5,7 +5,7 @@
enable
enable
Caspian.WorkflowFramework
- 1.1.0-preview.1
+ 1.1.0-preview.3
Digital banking team
Caspian
Caspian.WorkflowFramework
diff --git a/Caspian.WorkflowFramework.Package/Models/PublishEventModel.cs b/Caspian.WorkflowFramework.Package/Models/PublishEventModel.cs
index cab9a9e..66b8bc5 100644
--- a/Caspian.WorkflowFramework.Package/Models/PublishEventModel.cs
+++ b/Caspian.WorkflowFramework.Package/Models/PublishEventModel.cs
@@ -1,10 +1,6 @@
-using System;
-using System.Collections.Generic;
+using JetBrains.Annotations;
using System.ComponentModel.DataAnnotations;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using JetBrains.Annotations;
+using System.Text.Json;
namespace Caspian.WorkflowFramework.Models
{
@@ -18,6 +14,6 @@ namespace Caspian.WorkflowFramework.Models
public string EventName { get; set; }
[Required]
- public string? EventData { get; set; }
+ public JsonElement EventData { get; set; }
}
}
diff --git a/Caspian.WorkflowFramework.Package/Services/WorkflowService.cs b/Caspian.WorkflowFramework.Package/Services/WorkflowService.cs
index ffafbea..4feca20 100644
--- a/Caspian.WorkflowFramework.Package/Services/WorkflowService.cs
+++ b/Caspian.WorkflowFramework.Package/Services/WorkflowService.cs
@@ -1,16 +1,19 @@
-using Caspian.WorkflowFramework.Models;
-using Caspian.WorkflowFramework.Contracts;
-using Newtonsoft.Json;
-using Elsa.Workflows.Runtime;
-using Microsoft.Extensions.DependencyInjection;
+using Caspian.WorkflowFramework.Contracts;
+using Caspian.WorkflowFramework.Models;
+using Caspian.WorkflowFramework.Utility;
+using Elsa.Common.Models;
using Elsa.Workflows.Management;
using Elsa.Workflows.Management.Filters;
-using Elsa.Workflows.Runtime.Messages;
using Elsa.Workflows.Models;
-using Elsa.Common.Models;
-using Caspian.WorkflowFramework.Utility;
+using Elsa.Workflows.Runtime;
+using Elsa.Workflows.Runtime.Messages;
+using Microsoft.Extensions.DependencyInjection;
+using Newtonsoft.Json;
+using Newtonsoft.Json.Converters;
using San.MongoLogger;
using System.Diagnostics;
+using System.Dynamic;
+using System.Text.Json;
namespace Caspian.WorkflowFramework.Services
{
@@ -157,7 +160,23 @@ namespace Caspian.WorkflowFramework.Services
return response;
}
- await _eventPublisher.PublishAsync(input.EventName, null, input.WorkflowInstanceId, null, input.EventData);
+ dynamic payload = null;
+
+ if (input.EventData.ValueKind != JsonValueKind.Undefined &&
+ input.EventData.ValueKind != JsonValueKind.Null)
+ {
+ var json = input.EventData.GetRawText();
+
+ var settings = new JsonSerializerSettings
+ {
+ Converters = { new ExpandoObjectConverter() }
+ };
+
+ // تبدیل JSON به object داینامیک
+ payload = JsonConvert.DeserializeObject(json, settings);
+ }
+
+ await _eventPublisher.PublishAsync(input.EventName, null, input.WorkflowInstanceId, null, payload);
var variables = await _workflowInstanceVariableManager.GetVariablesAsync(input.WorkflowInstanceId);