Handle null EventData in PublishEventAsync

This commit is contained in:
Behzad Alizadeh
2025-12-10 11:01:15 +03:30
parent e013953e88
commit 52466642ab
@@ -4,6 +4,7 @@ using System.Diagnostics;
using System.Dynamic; using System.Dynamic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Text.Json;
using System.Threading.Tasks; using System.Threading.Tasks;
using Azure; using Azure;
using Caspian.WorkflowFramework.Contracts; using Caspian.WorkflowFramework.Contracts;
@@ -168,6 +169,11 @@ public class WorkflowService : IWorkflowService, ILoggable
return response; return response;
} }
dynamic payload = null;
if (input.EventData.ValueKind != JsonValueKind.Undefined &&
input.EventData.ValueKind != JsonValueKind.Null)
{
var json = input.EventData.GetRawText(); var json = input.EventData.GetRawText();
var settings = new JsonSerializerSettings var settings = new JsonSerializerSettings
@@ -176,7 +182,8 @@ public class WorkflowService : IWorkflowService, ILoggable
}; };
// تبدیل JSON به object داینامیک // تبدیل JSON به object داینامیک
dynamic payload = JsonConvert.DeserializeObject<ExpandoObject>(json, settings); payload = JsonConvert.DeserializeObject<ExpandoObject>(json, settings);
}
//await _eventPublisher.PublishAsync(input.EventName, null, input.WorkflowInstanceId, null, input.EventData, asynchronous: true); //await _eventPublisher.PublishAsync(input.EventName, null, input.WorkflowInstanceId, null, input.EventData, asynchronous: true);
await _eventPublisher.PublishAsync(input.EventName, null, input.WorkflowInstanceId, null, payload); await _eventPublisher.PublishAsync(input.EventName, null, input.WorkflowInstanceId, null, payload);