Commit graph

105 commits

Author SHA1 Message Date
Sipke Schoorstra 43973b408c Add periodFromNow JS function
Fixes #1066
2021-07-24 13:58:10 +02:00
axeleron007 32c2815f55 Don#t use colon in appsettings #1223
Colons are removed from any element name in the appsettings
2021-07-07 10:31:29 +03:00
Sipke Schoorstra d49bbd61ea Remove unused namespaces 2021-06-28 22:38:23 +02:00
Sipke Schoorstra 3f5a9690f8 Add Call Me Back activity for Ring Groups 2021-06-23 21:13:53 +02:00
Sipke Schoorstra 63113d31d7 Add various Startups
Note that this is a work in progress. Not all modules have startups yet.
2021-06-19 20:19:05 +02:00
Sipke Schoorstra 67c230a2af Resolve warnings 2021-06-19 11:51:06 +02:00
Sipke Schoorstra 97a9619fad Add support for email attachments 2021-06-16 17:03:06 +02:00
Sipke Schoorstra ebaeabb934 Implement support for HTTP file download for SendHttpRequest and WriteHttpResponse 2021-06-16 08:57:19 +02:00
Sipke Schoorstra f67140f7e2 Cleanup 2021-06-14 14:10:03 +02:00
Sipke Schoorstra 9ec82d9293 Refactor Output handling 2021-06-14 14:10:03 +02:00
Sipke Schoorstra 1db05d3b0b Update models and UI to support configurable activity output storage 2021-06-14 14:10:03 +02:00
Sipke Schoorstra 757a2f566f Refactor activity state serialization to support property types typed as object 2021-06-07 22:04:36 +02:00
Sipke Schoorstra a64675817a Fix that JS handler overwrites activity output with other props 2021-06-05 15:35:50 +02:00
Sipke Schoorstra d339b8d389 Add support for JProperty objects 2021-06-05 13:00:38 +02:00
Sipke Schoorstra d9e88dd195 Fix type definition generation for classes 2021-05-31 20:38:10 +02:00
Sipke Schoorstra 63a2ec6000 Prevent named activities from being rendered into typescript definition when name is empty string 2021-05-31 19:52:37 +02:00
Sipke Schoorstra 7e9ac20e8d Fix named activity missing in intellisense and blacklist many system types 2021-05-30 12:51:58 +02:00
Sipke Schoorstra d033b56d29 Increase javascript intellisense coverage 2021-05-30 12:51:58 +02:00
Sipke Schoorstra 7f420f4f42 Add JS functions to access activity properties 2021-05-30 12:51:58 +02:00
Sipke Schoorstra 58af0c7ca0 Rename ActivityPropertyAttribute to ActivityInputAttribute 2021-05-30 12:51:58 +02:00
Sipke Schoorstra ca1db18bd7 Improve JS result parsing with support for target type conversions 2021-05-25 13:24:01 +02:00
Sipke Schoorstra 581048cb99 Update JavaScript and Liquid handlers with additional variables 2021-05-13 12:15:31 +02:00
Sipke Schoorstra 7a9ccb99cf Remove TS configs for now from designer bindins project 2021-05-10 10:26:13 +02:00
Sipke Schoorstra 805d234df4 Cleanup 2021-05-04 10:59:52 +02:00
Sipke Schoorstra 2ec915dabe Merge branch 'feature/elsa-2.0'
# Conflicts:
#	.gitignore
#	Dockerfile
#	Nuget.Config
#	README.md
#	Samples.sln
#	appveyor.yml
#	docker-compose.yaml
#	src/activities/Elsa.Activities.ControlFlow/Activities/ForEach.cs
#	src/activities/Elsa.Activities.ControlFlow/Activities/IfElse.cs
#	src/activities/Elsa.Activities.ControlFlow/Activities/Join.cs
#	src/activities/Elsa.Activities.ControlFlow/Activities/Switch.cs
#	src/activities/Elsa.Activities.ControlFlow/Activities/While.cs
#	src/activities/Elsa.Activities.ControlFlow/icon.png
#	src/activities/Elsa.Activities.Dropbox/Extensions/ServiceCollectionExtensions.cs
#	src/activities/Elsa.Activities.Dropbox/icon.png
#	src/activities/Elsa.Activities.Email/Activities/SendEmail.cs
#	src/activities/Elsa.Activities.Email/icon.png
#	src/activities/Elsa.Activities.Http/Activities/ReceiveHttpRequest.cs
#	src/activities/Elsa.Activities.Http/Activities/Redirect.cs
#	src/activities/Elsa.Activities.Http/Activities/SendHttpRequest.cs
#	src/activities/Elsa.Activities.Http/Activities/WriteHttpResponse.cs
#	src/activities/Elsa.Activities.Http/RequestHandlers/Handlers/TriggerRequestHandler.cs
#	src/activities/Elsa.Activities.Http/icon.png
#	src/activities/Elsa.Activities.MassTransit/Activities/CancelScheduledSendMassTransitMessage.cs
#	src/activities/Elsa.Activities.MassTransit/Activities/MassTransitBusActivity.cs
#	src/activities/Elsa.Activities.MassTransit/Activities/ReceiveMassTransitMessage.cs
#	src/activities/Elsa.Activities.MassTransit/Extensions/ServiceCollectionExtensions.cs
#	src/activities/Elsa.Activities.MassTransit/icon.png
#	src/activities/Elsa.Activities.Reflection/Activities/ExecuteFunction.cs
#	src/activities/Elsa.Activities.Reflection/icon.png
#	src/activities/Elsa.Activities.Timers/Activities/CronEvent.cs
#	src/activities/Elsa.Activities.Timers/Activities/TimerEvent.cs
#	src/activities/Elsa.Activities.Timers/Elsa.Activities.Timers.csproj
#	src/activities/Elsa.Activities.Timers/icon.png
#	src/activities/Elsa.Activities.UserTask/Activities/UserTask.cs
#	src/activities/Elsa.Activities.UserTask/icon.png
#	src/activities/Elsa.Activities.Workflows/Activities/Finish.cs
#	src/activities/Elsa.Activities.Workflows/Activities/TriggerWorkflow.cs
#	src/activities/Elsa.Activities.Workflows/icon.png
#	src/core/Elsa.Abstractions/Converters/TypeNameHandlingConverter.cs
#	src/core/Elsa.Abstractions/Exceptions/WorkflowException.cs
#	src/core/Elsa.Abstractions/Models/ActivityDefinition.cs
#	src/core/Elsa.Abstractions/Models/BlockingActivity.cs
#	src/core/Elsa.Abstractions/Models/Variables.cs
#	src/core/Elsa.Abstractions/Models/WorkflowFault.cs
#	src/core/Elsa.Abstractions/Models/WorkflowInstance.cs
#	src/core/Elsa.Abstractions/Services/ActivityBase.cs
#	src/core/Elsa.Abstractions/Services/IWorkflowEventHandler.cs
#	src/core/Elsa.Abstractions/Services/Models/Workflow.cs
#	src/core/Elsa.Abstractions/Services/Models/WorkflowExecutionContext.cs
#	src/core/Elsa.Abstractions/Services/Models/WorkflowFault.cs
#	src/core/Elsa.Abstractions/Services/WorkflowEventHandlerBase.cs
#	src/core/Elsa.Abstractions/icon.png
#	src/core/Elsa.Core/Expressions/WorkflowExpressionEvaluator.cs
#	src/core/Elsa.Core/Extensions/AutoMapperServiceCollectionExtensions.cs
#	src/core/Elsa.Core/Extensions/ElsaServiceCollectionExtensions.cs
#	src/core/Elsa.Core/Mapping/WorkflowDefinitionProfile.cs
#	src/core/Elsa.Core/Persistence/Memory/MemoryWorkflowInstanceStore.cs
#	src/core/Elsa.Core/Results/FaultWorkflowResult.cs
#	src/core/Elsa.Core/Runtime/StartupRunnerHostedService.cs
#	src/core/Elsa.Core/Services/WorkflowInvoker.cs
#	src/core/Elsa.Core/Services/WorkflowPublisher.cs
#	src/core/Elsa.Core/WorkflowBuilders/ActivityBuilder.cs
#	src/core/Elsa.Core/icon.png
#	src/core/Elsa/icon.png
#	src/dashboard/Elsa.Dashboard.Web/Elsa.Dashboard.Web.csproj
#	src/dashboard/Elsa.Dashboard.Web/Startup.cs
#	src/dashboard/Elsa.Dashboard.Web/icon.png
#	src/dashboard/Elsa.Dashboard/ActionFilters/NotifierFilter.cs
#	src/dashboard/Elsa.Dashboard/Areas/Elsa/Views/Shared/UserMenuItems.cshtml
#	src/dashboard/Elsa.Dashboard/Areas/Elsa/Views/Shared/WorkflowDefinitionEditor.cshtml
#	src/dashboard/Elsa.Dashboard/Areas/Elsa/Views/_ViewImports.cshtml
#	src/dashboard/Elsa.Dashboard/Conventions/ElsaConvention.cs
#	src/dashboard/Elsa.Dashboard/Elsa.Dashboard.csproj
#	src/dashboard/Elsa.Dashboard/Extensions/DashboardServiceCollectionExtensions.cs
#	src/dashboard/Elsa.Dashboard/icon.png
#	src/dashboard/Elsa.WorkflowDesigner/Elsa.WorkflowDesigner.csproj
#	src/dashboard/Elsa.WorkflowDesigner/ViewComponents/WorkflowDesignerViewComponent.cs
#	src/dashboard/Elsa.WorkflowDesigner/icon.png
#	src/persistence/Elsa.Persistence.DocumentDb/DocumentDbStorage.cs
#	src/persistence/Elsa.Persistence.DocumentDb/DocumentDbStorageOptions.cs
#	src/persistence/Elsa.Persistence.DocumentDb/Documents/WorkflowDefinitionVersionDocument.cs
#	src/persistence/Elsa.Persistence.DocumentDb/Documents/WorkflowInstanceDocument.cs
#	src/persistence/Elsa.Persistence.DocumentDb/Elsa.Persistence.DocumentDb.csproj
#	src/persistence/Elsa.Persistence.DocumentDb/Extensions/DateTimeExtensions.cs
#	src/persistence/Elsa.Persistence.DocumentDb/Extensions/DocumentClientExtensions.cs
#	src/persistence/Elsa.Persistence.DocumentDb/Extensions/QueryableExtensions.cs
#	src/persistence/Elsa.Persistence.DocumentDb/Extensions/ServiceConfigurationExtensions.cs
#	src/persistence/Elsa.Persistence.DocumentDb/Mapping/DocumentProfile.cs
#	src/persistence/Elsa.Persistence.DocumentDb/Services/CosmosDbWorkflowDefinitionStore.cs
#	src/persistence/Elsa.Persistence.DocumentDb/Services/CosmosDbWorkflowInstanceStore.cs
#	src/persistence/Elsa.Persistence.DocumentDb/icon.png
#	src/persistence/Elsa.Persistence.EntityFrameworkCore/CustomSchema/CustomSchemaOptionsExtensionInfo.cs
#	src/persistence/Elsa.Persistence.EntityFrameworkCore/DbContexts/ElsaContext.cs
#	src/persistence/Elsa.Persistence.EntityFrameworkCore/DbContexts/MySqlContext.cs
#	src/persistence/Elsa.Persistence.EntityFrameworkCore/DbContexts/MySqlContextFactory.cs
#	src/persistence/Elsa.Persistence.EntityFrameworkCore/DbContexts/PostgreSqlContext.cs
#	src/persistence/Elsa.Persistence.EntityFrameworkCore/DbContexts/SqlServerContext.cs
#	src/persistence/Elsa.Persistence.EntityFrameworkCore/DbContexts/SqliteContext.cs
#	src/persistence/Elsa.Persistence.EntityFrameworkCore/Elsa.Persistence.EntityFrameworkCore.csproj
#	src/persistence/Elsa.Persistence.EntityFrameworkCore/Entities/WorkflowInstanceEntity.cs
#	src/persistence/Elsa.Persistence.EntityFrameworkCore/Extensions/EFCoreServiceCollectionExtensions.cs
#	src/persistence/Elsa.Persistence.EntityFrameworkCore/Mapping/EntitiesProfile.cs
#	src/persistence/Elsa.Persistence.EntityFrameworkCore/Migrations/MySql/MySqlContextModelSnapshot.cs
#	src/persistence/Elsa.Persistence.EntityFrameworkCore/Migrations/PostgreSql/20201027192219_Update02.Designer.cs
#	src/persistence/Elsa.Persistence.EntityFrameworkCore/Migrations/PostgreSql/PostgreSqlContextModelSnapshot.cs
#	src/persistence/Elsa.Persistence.EntityFrameworkCore/Migrations/SqlServer/SqlServerContextModelSnapshot.cs
#	src/persistence/Elsa.Persistence.EntityFrameworkCore/Migrations/Sqlite/20201029094740_Create.Designer.cs
#	src/persistence/Elsa.Persistence.EntityFrameworkCore/Migrations/Sqlite/20201029094740_Create.cs
#	src/persistence/Elsa.Persistence.EntityFrameworkCore/Migrations/Sqlite/SqliteContextModelSnapshot.cs
#	src/persistence/Elsa.Persistence.EntityFrameworkCore/Services/EntityFrameworkCoreWorkflowDefinitionStore.cs
#	src/persistence/Elsa.Persistence.EntityFrameworkCore/Services/EntityFrameworkCoreWorkflowInstanceStore.cs
#	src/persistence/Elsa.Persistence.EntityFrameworkCore/icon.png
#	src/persistence/Elsa.Persistence.MongoDb/Extensions/ServiceCollectionExtensions.cs
#	src/persistence/Elsa.Persistence.MongoDb/icon.png
#	src/persistence/Elsa.Persistence.YesSql/Documents/WorkflowInstanceDocument.cs
#	src/persistence/Elsa.Persistence.YesSql/Extensions/YesSqlServiceCollectionExtensions.cs
#	src/persistence/Elsa.Persistence.YesSql/Mapping/DocumentProfile.cs
#	src/persistence/Elsa.Persistence.YesSql/Services/YesSqlWorkflowDefinitionStore.cs
#	src/persistence/Elsa.Persistence.YesSql/Services/YesSqlWorkflowInstanceStore.cs
#	src/persistence/Elsa.Persistence.YesSql/StartupTasks/InitializeStoreTask.cs
#	src/persistence/Elsa.Persistence.YesSql/icon.png
#	src/samples/README.md
#	src/samples/Sample04/Activities/ArithmeticOperation.cs
#	src/samples/Sample04/Activities/Divide.cs
#	src/samples/Sample04/Activities/Multiply.cs
#	src/samples/Sample04/Activities/Subtract.cs
#	src/samples/Sample04/Activities/Sum.cs
#	src/samples/Sample04/Program.cs
#	src/samples/Sample05/Sample05.csproj
#	src/samples/Sample07/Startup.cs
#	src/samples/Sample08/Sample08.csproj
#	src/samples/Sample08/Startup.cs
#	src/samples/Sample12/Program.cs
#	src/samples/Sample14/ElsaContextFactory.cs
#	src/samples/Sample14/Program.cs
#	src/samples/Sample14/Sample14.csproj
#	src/samples/Sample18/Program.cs
#	src/samples/Sample18/Sample18.csproj
#	src/samples/Sample19/Sample19.csproj
#	src/samples/Sample20/Workflows/SplitObjectWorkflow.cs
#	src/samples/Sample21/Sample21.csproj
#	src/samples/Sample21/Startup.cs
#	src/samples/Sample21/Workflows/CartTrackingWorkflow.cs
#	src/samples/Sample21/appsettings.json
#	src/samples/Sample22/Program.cs
#	src/samples/Sample22/Sample22.csproj
#	src/samples/Sample23/ElsaContextFactory.cs
#	src/samples/Sample23/HelloWorldWorkflow.cs
#	src/samples/Sample23/Migrations/Sqlite/20201027194619_Create.Designer.cs
#	src/samples/Sample23/Migrations/Sqlite/20201027194619_Create.cs
#	src/samples/Sample23/Migrations/Sqlite/ElsaContextModelSnapshot.cs
#	src/samples/Sample23/Program.cs
#	src/samples/Sample23/Sample23.csproj
#	src/samples/Sample24/Sample24.csproj
#	src/scripting/Elsa.Scripting.JavaScript/Converters/TruncatingNumberJsonConverter.cs
#	src/scripting/Elsa.Scripting.JavaScript/Handlers/CommonJavaScriptEngineHandler.cs
#	src/scripting/Elsa.Scripting.JavaScript/Services/JavaScriptExpressionEvaluator.cs
#	src/scripting/Elsa.Scripting.JavaScript/icon.png
#	src/scripting/Elsa.Scripting.Liquid/Handlers/CommonLiquidContextHandler.cs
#	src/scripting/Elsa.Scripting.Liquid/Services/LiquidExpressionEvaluator.cs
#	src/scripting/Elsa.Scripting.Liquid/icon.png
2021-05-04 10:53:55 +02:00
Sipke Schoorstra ad61ed480c Add JavaScript functions to resolve workflow definition ID by tag and name 2021-04-26 12:32:16 +02:00
Sipke Schoorstra 5825ce6bc1 Add convenience JS functions 2021-04-15 16:08:44 +02:00
Sipke Schoorstra 3138c33903 Add JObject type conversion handling 2021-04-15 14:39:31 +02:00
Sipke Schoorstra 59aba78133 Formatting 2021-04-14 20:21:11 +02:00
Craig Fowler d2de5ec77d
Merge pull request #851 from jdevillard/fix_PlainObjectResultConverter_ForSameObject
Fix plain object result converter for same object type
2021-04-14 17:11:49 +01:00
Sipke Schoorstra 5dd2c0be34 Add workflowContext global JS variable 2021-04-13 23:01:49 +02:00
Sipke Schoorstra 06233e7c05 Add JavaScript support for accessing appsettings 2021-04-13 13:17:24 +02:00
Sipke Schoorstra 094eccd572 Implement Switch expression evaluation 2021-04-12 22:29:58 +02:00
jdevillard 0062585709 return object if it is already the good type 2021-04-09 22:24:53 +02:00
Sipke Schoorstra ce957b95e7 Cleanup 2021-04-07 13:13:13 +02:00
Sipke Schoorstra df6ad74eec Replace custom distributed locking implementation with DistributedLock
https://github.com/madelson/DistributedLock
2021-04-07 13:13:13 +02:00
Sipke Schoorstra 522e9fc30d Fix RunJavaScript activity attributes 2021-04-06 21:41:43 +02:00
Sipke Schoorstra e2118a1135 Update expression evaluators to get merged variables 2021-04-04 15:37:28 +02:00
Craig Fowler 8e16f5f269 Related to #761 - Refactor complex conversion
This removes all of the (now actually non-trivial) conversion logic from
the class which is actually responsible for executing the Jint engine.
This moves it all to a new service which uses chain of responsibility to
convert the result, using one of a few different mechanisms.

Of note is the handling of ExpandoObject when no specific type
information has been provided, and also the handling of enumerables,
with the exception of strings.
2021-04-01 20:25:09 +02:00
Craig Fowler 4b5d86135d Follow-up #761 - Fix for recursive case
Unfortunately Jint still chokes in this case if the expando contains
further nested expandos.  It turns out that I need to do this
recursively for it to always work.

We also have trouble with IEnumerable types.  They also can't be
round-tripped from/to JSON when they aren't deserialized as a very
specific type.
2021-04-01 20:25:09 +02:00
Craig Fowler 7ed875e53c Resolve #761 - Add special-case for ExpandoObject
It appears that this can be fixed by intercepting occasions
when Jint returns an ExpandoObject but the desired return type
is simply object.  In this scenario we must return
a Dictionary<string,object> instead of a simple object, or else
Jint freaks out should we try to stringify it later.

I also added a second test to prove that making this change hasn't
broken the way we expect Jint to work for us.
2021-04-01 20:25:09 +02:00
Craig Fowler a7f8926698 WIP #761 - Experimental commit (no exception)
This is an experimental commit.  It does stop the exception from
occurring, but it doesn't really fix the problem because now the
output is always empty-object.

It does prove that the exception was occurring because of the
usage of JsonConvert to serialize/deserialize the result.
The change made in this commit probably can't go into prod
but it is useful because it llustrates a part of the problem.
2021-04-01 20:25:09 +02:00
Sipke Schoorstra aff01d104a Rename Outcomes property that was hiding Outcomes member from base class 2021-03-23 14:51:53 +01:00
Sipke Schoorstra 63aef00415 Fix type cast issue when evaluating JS expressions with no specialized type 2021-03-19 12:21:04 +01:00
Sipke Schoorstra 0c15c94ea7
Telnyx Activities (#768)
* Fix liquid syntax for accessing activity output

* Initial scaffolding of Telnyx module + API changes

* Make Telnyx Notification activity blocking

* Implement Telnyx correlation

* Post workflow suspension tasks improvements

* Add Telnyx activities

* Add HangupCall and TransferCall activities

* Call activity improvements
2021-03-17 13:07:14 +01:00
Sipke Schoorstra 94d71c54f3 JavaScript engine type conversion improvements 2021-03-11 22:51:29 +01:00
Sipke Schoorstra 422203ac36 Change syntax to get activity output using JS 2021-03-11 22:50:18 +01:00
Sipke Schoorstra 0442e1e699 Refactor options provider with DI support 2021-03-10 20:23:21 +01:00
Sipke Schoorstra 5e665c9119 Add JS functions to get and set variables 2021-03-06 14:33:42 +01:00
Sipke Schoorstra d7d7bd4a7e Add RunJavaScript activity 2021-03-06 13:41:52 +01:00