Commit graph

54 commits

Author SHA1 Message Date
noxe 21ff1c7c83
return enumerable if it is assignable from the desiredtype (#1669)
Co-authored-by: Martin <mp@prakom.net>
2021-10-25 13:47:07 +02:00
axeleron007 743bfa0643 The HttpEndpoint logic moved from Elsa.Scripting.JavaScript to Elsa.HttpEndpoint project 2021-09-28 15:06:13 +03:00
axeleron007 ca1c855140 Fixes to PR 2021-09-24 12:49:44 +03:00
axeleron007 08235ce8d4 Merge branch 'master' into manual_workflow_trigger 2021-09-14 15:19:10 +03:00
axeleron007 14c7582a32 Workflow Execution development 2021-09-13 18:29:40 +03:00
axeleron007 68ad66b4a7 Use generics for TargetType in intellisense typescript generator and code clean up 2021-09-02 18:00:17 +03:00
Andrey Mishurinsky a24fa583cc some test changes 2021-09-02 09:47:31 +03:00
Sipke Schoorstra 9e1574bc30 Allow casting to nullable target types 2021-08-19 14:46:08 +02:00
Sipke Schoorstra 8fb52ebcc1 Add support for ExpandoObject deserialization into strongly typed object 2021-07-31 12:54:46 +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 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 d9e88dd195 Fix type definition generation for classes 2021-05-31 20:38:10 +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 ca1db18bd7 Improve JS result parsing with support for target type conversions 2021-05-25 13:24:01 +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
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
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 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 d7d7bd4a7e Add RunJavaScript activity 2021-03-06 13:41:52 +01:00
Sipke Schoorstra 6eadac5736 Improve javascript engine 2021-03-04 17:45:59 +01:00
Sipke Schoorstra 9e31439802 Fix JavaScriptExpressionHandler string conversion 2021-03-04 17:45:59 +01:00
Sipke Schoorstra a14f7cc267
Expressions editor (#695)
* A functioning monaco editor

* Incremental work on intellisense

* Add Workflow Context Options settings to designer

* Rudimentary work on variables
2021-03-02 09:00:51 +01:00
Sipke Schoorstra 03c9f94671
Improve specifications and YesSQL implementation (#529)
* Update Fluid.Core package

* Make specifications flexible

* Update build environment

* Disable global.json
2020-12-20 12:12:32 +01:00
Sipke Schoorstra f8662c5426 Implement workflow materializer 2020-10-17 16:45:20 +02:00
Sipke Schoorstra 7a7d032e9e Remove unused namespaces 2020-10-11 14:33:56 +02:00
Sipke Schoorstra 1a85fc5f26 Implement in-memory provider 2020-10-10 21:10:09 +02:00
Sipke Schoorstra e1f5b6a8a5 Implement YesSql 2020-10-10 17:13:52 +02:00
Sipke Schoorstra 899f12e35f Cleanup and apply new field naming convention 2020-10-09 19:52:54 +02:00
Sipke Schoorstra c542a5a531 Merge branch 'develop' into feature/elsa-2.0
# Conflicts:
#	src/activities/Elsa.Activities.ControlFlow/Activities/ForEach.cs
#	src/core/Elsa.Abstractions/Extensions/WorkflowExtensions.cs
#	src/core/Elsa.Abstractions/Models/WorkflowInstance.cs
#	src/core/Elsa.Core/Expressions/LiteralEvaluator.cs
#	src/dashboard/Elsa.Dashboard/Extensions/DashboardServiceCollectionExtensions.cs
#	src/dashboard/Elsa.Dashboard/Theme/argon-dashboard/package-lock.json
#	src/dashboard/Elsa.Dashboard/Theme/argon-dashboard/package.json
#	src/persistence/Elsa.Persistence.DocumentDb/Extensions/ServiceConfigurationExtensions.cs
#	src/persistence/Elsa.Persistence.EntityFrameworkCore/Extensions/EFCoreServiceCollectionExtensions.cs
#	src/persistence/Elsa.Persistence.EntityFrameworkCore/Migrations/MySql/MySqlContextModelSnapshot.cs
#	src/providers/Elsa.Persistence.EntityFrameworkCore/Migrations/MySql/20200402200706_Update01.Designer.cs
#	src/providers/Elsa.Persistence.EntityFrameworkCore/Migrations/MySql/20200402200706_Update01.cs
#	src/providers/Elsa.Persistence.EntityFrameworkCore/Migrations/PostgreSql/20200402200555_Update01.Designer.cs
#	src/providers/Elsa.Persistence.EntityFrameworkCore/Migrations/PostgreSql/20200402200555_Update01.cs
#	src/providers/Elsa.Persistence.EntityFrameworkCore/Migrations/SqlServer/20200402200549_Update01.Designer.cs
#	src/providers/Elsa.Persistence.EntityFrameworkCore/Migrations/SqlServer/20200402200549_Update01.cs
#	src/providers/Elsa.Persistence.EntityFrameworkCore/Migrations/Sqlite/20200402200519_Update01.Designer.cs
#	src/providers/Elsa.Persistence.EntityFrameworkCore/Migrations/Sqlite/20200402200519_Update01.cs
#	src/providers/Elsa.Persistence.EntityFrameworkCore/Migrations/Sqlite/SqliteContextModelSnapshot.cs
#	src/samples/Sample24/Program.cs
#	src/scripting/Elsa.Scripting.JavaScript/Services/JavaScriptHandler.cs
2020-04-17 20:34:39 +02:00
Sipke Schoorstra 8ec43230a7 Improve JS value converter to support object target type 2020-02-20 21:24:34 +01:00
Sipke Schoorstra 60bfb4e7b2
Added Graphql (#246)
* Added GraphQL using Hot Chocolate
2020-02-15 20:32:16 +01:00
Sipke Schoorstra aefe630f42 Merge branch 'develop' into feature/elsa-2.0
# Conflicts:
#	Samples.sln
#	src/core/Elsa.Abstractions/Elsa.Abstractions.csproj
#	src/core/Elsa.Core/Elsa.Core.csproj
#	src/persistence/Elsa.Persistence.EntityFrameworkCore/Extensions/EFCoreServiceCollectionExtensions.cs
#	src/providers/Elsa.Persistence.EntityFrameworkCore/Elsa.Persistence.EntityFrameworkCore.csproj
#	src/providers/Elsa.Persistence.YesSql/DbContexts/DesignTimeDbContextFactoryBase.cs
#	src/providers/Elsa.Persistence.YesSql/DbContexts/MySqlContext.cs
#	src/providers/Elsa.Persistence.YesSql/DbContexts/MySqlContextFactory.cs
#	src/providers/Elsa.Persistence.YesSql/Elsa.Persistence.YesSql.csproj
#	src/providers/Elsa.Persistence.YesSql/Migrations/MySql/20200113102615_InitialCreate.Designer.cs
#	src/providers/Elsa.Persistence.YesSql/Migrations/MySql/20200113102615_InitialCreate.cs
#	src/providers/Elsa.Persistence.YesSql/Migrations/MySql/MySqlContextModelSnapshot.cs
#	src/samples/Elsa.Samples.Timers/Elsa.Samples.Timers.csproj
#	src/samples/Sample05/Program.cs
#	src/samples/Sample08/Sample08.csproj
#	src/samples/Sample08/Startup.cs
#	src/samples/Sample14/Program.cs
#	src/samples/Sample14/Sample14.csproj
#	src/samples/Sample16/Sample16.csproj
#	src/samples/Sample18/Program.cs
#	src/samples/Sample18/Sample18.csproj
#	src/samples/Sample19/Sample19.csproj
#	src/samples/Sample19/Startup.cs
#	src/samples/Sample21/Sample21.csproj
#	src/samples/Sample21/Startup.cs
#	src/samples/Sample22/Program.cs
#	src/samples/Sample22/Sample22.csproj
#	src/samples/Sample23/Program.cs
#	src/samples/Sample23/Sample23.csproj
2020-01-16 21:23:45 +01:00
Sipke Schoorstra 7b94637386
Code-first improvements (#223)
* Refactor workflow model and scheduler

* Improve workflow builder API
2020-01-12 20:15:57 +01:00
Sipke Schoorstra 1338dc0a95
Container Activities (#218)
* Add support for child activities.

* Add type map feature.

* Update While, For and ForEach activities
2019-12-28 10:56:12 +01:00
Sipke Schoorstra 8092d166a5
Add native .NET code support + activity input/output (#216)
* Add code activity

* Refactor Workflow State to use Variables

* Update InstantEvent and SetVariable

* Update samples

* Add activity input/output
2019-12-23 21:43:11 +01:00
James Doran 9556b80016 Add script options configuration (#179) 2019-11-21 21:09:58 +10:30
James Doran 6714308558 JavaScriptExpresionEvaluator now takes into account the target type when performing conversion (#185) 2019-11-19 08:42:28 +01:00
Peter Davis bbfbba53ce Fix issue with property expressions throwing invalid cast exceptions (#173)
Expression was returning the JValue of the property and was unable to convert to a string.
2019-11-18 08:07:33 +01:00