diff --git a/NuGet.Config b/NuGet.Config
index 828d13e..0c81c84 100644
--- a/NuGet.Config
+++ b/NuGet.Config
@@ -9,5 +9,6 @@
+
\ No newline at end of file
diff --git a/src/apps/Caspian.WorkflowFramework.Sample/Controllers/WorkflowController.cs b/src/apps/Caspian.WorkflowFramework.Sample/Controllers/WorkflowController.cs
index 379e2f4..8d66372 100644
--- a/src/apps/Caspian.WorkflowFramework.Sample/Controllers/WorkflowController.cs
+++ b/src/apps/Caspian.WorkflowFramework.Sample/Controllers/WorkflowController.cs
@@ -8,6 +8,9 @@ using San.MongoLogger;
using Newtonsoft.Json;
namespace Caspian.WorkflowFramework.Sample.Controllers;
+
+[ApiController]
+[Route("[controller]")]
public class WorkflowController : Controller, ILoggable
{
#region Fields
@@ -26,7 +29,7 @@ public class WorkflowController : Controller, ILoggable
#region Start
[HttpPost("Start")]
- public async Task Start(CreateAndExecuteWorkflowModel input)
+ public async Task Start([FromBody] CreateAndExecuteWorkflowModel input)
{
_logger.Log("Start of StartWorkflow action", JsonConvert.SerializeObject(input));
@@ -46,7 +49,7 @@ public class WorkflowController : Controller, ILoggable
#region Do
[HttpPost("Do")]
- public async Task Do(PublishEventModel input)
+ public async Task Do([FromBody] PublishEventModel input)
{
_logger.Log("Start of Do action", WFInstanceId: input.WorkflowInstanceId, JsonConvert.SerializeObject(input));
@@ -61,7 +64,7 @@ public class WorkflowController : Controller, ILoggable
#region GetState
[HttpPost("GetState")]
- public async Task GetState(InquiryStateModel input)
+ public async Task GetState([FromBody] InquiryStateModel input)
{
_logger.Log("Start of GetState action", WFInstanceId: input.WorkflowInstanceId, JsonConvert.SerializeObject(input));
diff --git a/src/apps/Caspian.WorkflowFramework.Sample/appsettings.json b/src/apps/Caspian.WorkflowFramework.Sample/appsettings.json
index c53f2ba..f2b3c6a 100644
--- a/src/apps/Caspian.WorkflowFramework.Sample/appsettings.json
+++ b/src/apps/Caspian.WorkflowFramework.Sample/appsettings.json
@@ -38,6 +38,7 @@
"reloadConfigOnChange": true
},
"ConnectionStrings": {
- "DefaultConnection": "Data Source=.;Initial Catalog=WfDb;User ID=sa;Password=123456;Integrated Security=false;TrustServerCertificate=True;"
+ //"DefaultConnection": "Data Source=.;Initial Catalog=WfDb;User ID=sa;Password=123456;Integrated Security=false;TrustServerCertificate=True;"
+ "DefaultConnection": "Server=.;Database=WfDb;User Id=sa;Password=123456;TrustServerCertificate=True;"
}
}
diff --git a/src/apps/Caspian.WorkflowFramework/Models/PublishEventModel.cs b/src/apps/Caspian.WorkflowFramework/Models/PublishEventModel.cs
index 10cd5ad..479f132 100644
--- a/src/apps/Caspian.WorkflowFramework/Models/PublishEventModel.cs
+++ b/src/apps/Caspian.WorkflowFramework/Models/PublishEventModel.cs
@@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
+using System.Text.Json;
using System.Threading.Tasks;
using JetBrains.Annotations;
@@ -17,5 +18,5 @@ public class PublishEventModel
public string EventName { get; set; }
[Required]
- public string? EventData { get; set; }
+ public JsonElement EventData { get; set; }
}
diff --git a/src/apps/Caspian.WorkflowFramework/Services/WorkflowService.cs b/src/apps/Caspian.WorkflowFramework/Services/WorkflowService.cs
index 7ca42ac..de8e96e 100644
--- a/src/apps/Caspian.WorkflowFramework/Services/WorkflowService.cs
+++ b/src/apps/Caspian.WorkflowFramework/Services/WorkflowService.cs
@@ -1,5 +1,7 @@
using System;
using System.Collections.Generic;
+using System.Diagnostics;
+using System.Dynamic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
@@ -14,12 +16,13 @@ using Elsa.Workflows.Management.Filters;
using Elsa.Workflows.Models;
using Elsa.Workflows.Runtime;
using Elsa.Workflows.Runtime.Messages;
+using FastEndpoints;
using Microsoft.CodeAnalysis.Operations;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Win32;
-using San.MongoLogger;
using Newtonsoft.Json;
-using System.Diagnostics;
+using Newtonsoft.Json.Converters;
+using San.MongoLogger;
namespace Caspian.WorkflowFramework.Services;
public class WorkflowService : IWorkflowService, ILoggable
@@ -165,7 +168,18 @@ public class WorkflowService : IWorkflowService, ILoggable
return response;
}
- await _eventPublisher.PublishAsync(input.EventName, null, input.WorkflowInstanceId, null, input.EventData);
+ var json = input.EventData.GetRawText();
+
+ var settings = new JsonSerializerSettings
+ {
+ Converters = { new ExpandoObjectConverter() }
+ };
+
+ // تبدیل JSON به object داینامیک
+ dynamic payload = JsonConvert.DeserializeObject(json, settings);
+
+ //await _eventPublisher.PublishAsync(input.EventName, null, input.WorkflowInstanceId, null, input.EventData, asynchronous: true);
+ await _eventPublisher.PublishAsync(input.EventName, null, input.WorkflowInstanceId, null, payload);
var variables = await _workflowInstanceVariableManager.GetVariablesAsync(input.WorkflowInstanceId);
diff --git a/src/apps/Elsa.Server.Web/appsettings.json b/src/apps/Elsa.Server.Web/appsettings.json
index f07b655..4f1fe5a 100644
--- a/src/apps/Elsa.Server.Web/appsettings.json
+++ b/src/apps/Elsa.Server.Web/appsettings.json
@@ -39,7 +39,7 @@
"ConnectionStrings": {
"Sqlite": "", //"Data Source=App_Data/elsa.sqlite.db;Cache=Shared;",
//"SqlServer": "Server=localhost,1433;Initial Catalog=Elsa;User=sa;Password=!Elsa2025@;Encrypt=false;PersistSecurityInfo=false",
- "SqlServer": "Server=.;Database=WorkflowDb_3-5-0_2;User Id=sa;Password=123456;TrustServerCertificate=True;",
+ "SqlServer": "Server=.;Database=WfDb;User Id=sa;Password=123456;TrustServerCertificate=True;",
"MySql": "", //"Server=localhost;Database=elsa;Uid=admin;Pwd=password;",
"PostgreSql": "", //"Server=localhost;Username=elsa;Database=elsa;Port=5432;Password=elsa;SSLMode=Prefer;MaxPoolSize=2000;Timeout=60",
"Citus": "", //"Server=localhost;Username=citus;Database=citus;Port=9700;Password=citus;SSLMode=Prefer;MaxPoolSize=2000;Timeout=60",
@@ -173,11 +173,11 @@
},
{
"Name": "Staging",
- "ServerUrl": "https://staging.acme.com/elsa/api"
+ "ServerUrl": "https://localhost:5001/elsa/api"
},
{
"Name": "Production",
- "ServerUrl": "https://production.acme.com/elsa/api"
+ "ServerUrl": "https://localhost:5001/elsa/api"
}
]
},
diff --git a/src/apps/Elsa.ServerAndStudio.Web/appsettings.json b/src/apps/Elsa.ServerAndStudio.Web/appsettings.json
index c2f42a4..3f4d61f 100644
--- a/src/apps/Elsa.ServerAndStudio.Web/appsettings.json
+++ b/src/apps/Elsa.ServerAndStudio.Web/appsettings.json
@@ -39,7 +39,7 @@
"Sqlite": "", //"Data Source=elsa.sqlite.db;Cache=Shared;",
"RabbitMq": "", //"rabbitmq://guest:guest@localhost:5672",
"MySql": "", //"Server=localhost;Database=elsa;Uid=user;Pwd=password;",
- "SqlServer": "Server=.;Database=WorkflowDb_3-5-0;User Id=sa;Password=123456;TrustServerCertificate=True;",
+ "SqlServer": "Server=.;Database=WfDb;User Id=sa;Password=123456;TrustServerCertificate=True;",
"PostgreSql": "" //"Server=localhost;Username=elsa;Database=elsa;Port=5432;Password=elsa;SSLMode=Prefer;MaxPoolSize=2000;Timeout=60"
},
"DatabaseProvider": "SqlServer", //"Sqlite",