diff --git a/samples/aspnet/Elsa.Samples.AspNet.CustomUIHandler/Program.cs b/samples/aspnet/Elsa.Samples.AspNet.CustomUIHandler/Program.cs index ea1ed15dd..c53d22c15 100644 --- a/samples/aspnet/Elsa.Samples.AspNet.CustomUIHandler/Program.cs +++ b/samples/aspnet/Elsa.Samples.AspNet.CustomUIHandler/Program.cs @@ -1,3 +1,4 @@ +using Elsa.EntityFrameworkCore.Extensions; using Elsa.EntityFrameworkCore.Modules.Management; using Elsa.EntityFrameworkCore.Modules.Runtime; using Elsa.Extensions; @@ -7,8 +8,8 @@ var builder = WebApplication.CreateBuilder(args); builder.Services.AddElsa(elsa => { - elsa.UseWorkflowManagement(management => management.UseEntityFrameworkCore()); - elsa.UseWorkflowRuntime(runtime => runtime.UseEntityFrameworkCore()); + elsa.UseWorkflowManagement(management => management.UseEntityFrameworkCore(ef => ef.UseSqlite())); + elsa.UseWorkflowRuntime(runtime => runtime.UseEntityFrameworkCore(ef=>ef.UseSqlite())); elsa.UseWorkflowsApi(); elsa.UseHttp(); @@ -26,12 +27,12 @@ builder.Services.AddElsa(elsa => }); elsa.UseDefaultAuthentication(); - elsa.AddActivity(); + elsa.AddActivity(); }); builder.Services.AddSingleton(); builder.Services.AddCors(cors => cors.AddDefaultPolicy(policy => policy.AllowAnyHeader().AllowAnyMethod().AllowAnyOrigin())); - + var app = builder.Build(); // Configure the HTTP request pipeline. @@ -41,4 +42,5 @@ app.UseAuthentication(); app.UseAuthorization(); app.UseWorkflowsApi(); app.Map("/test",c=> c.UseWorkflows()); -app.Run(); \ No newline at end of file +app.Run(); + diff --git a/src/modules/Elsa.Workflows.Management/Providers/DefaultExpressionDescriptorProvider.cs b/src/modules/Elsa.Workflows.Management/Providers/DefaultExpressionDescriptorProvider.cs index e85742a7c..67d1994f8 100644 --- a/src/modules/Elsa.Workflows.Management/Providers/DefaultExpressionDescriptorProvider.cs +++ b/src/modules/Elsa.Workflows.Management/Providers/DefaultExpressionDescriptorProvider.cs @@ -49,13 +49,23 @@ public class DefaultExpressionDescriptorProvider : IExpressionDescriptorProvider return CreateDescriptor( "Variable", "Variable", - isBrowsable: false, + isBrowsable: true, memoryBlockReferenceFactory: () => new Variable(), deserialize: context => { - var valueElement = context.JsonElement.TryGetProperty("value", out var v) ? v : default; - var value = valueElement.Deserialize(context.MemoryBlockType, context.Options); - return new Expression("Variable", value); + var valueElement = context.JsonElement.TryGetProperty("value", out var v) ? v : default; + var valueString = valueElement.GetValue()?.ToString(); + try + { + var value = JsonSerializer.Deserialize(valueString, context.MemoryBlockType, context.Options); + return new Expression("Variable", value); + } + catch (Exception) + { + + return new Expression("Variable", null); + } + } ); }