Commit graph

294 commits

Author SHA1 Message Date
Sipke Schoorstra 452516bdfa Merge branch 'develop' into feature/elsa-2.0
# Conflicts:
#	src/persistence/Elsa.Persistence.YesSql/StartupTasks/InitializeStoreTask.cs
2019-12-21 12:32:04 +01:00
Sipke Schoorstra 0fbb47ff8f Fix broken Sample23 2019-12-21 10:45:16 +01:00
Sipke Schoorstra 80ad40824e
Fix broken date/time/nodatime serialization (#214)
Added extensible support for specialized primitive handling such as
DateTime and NodaTime primitives.

This fixes the issue where a Variable is serialized using a primitive's
string representation and losing the target type, which is needed for
reconstructing the type upon deserialization.
2019-12-21 10:05:10 +01:00
James Doran 6addf0f974
YesSql now stores schema version (#213) 2019-12-21 08:54:32 +10:30
Sipke Schoorstra 56402c33ba Merge branch 'develop' into feature/elsa-2.0 2019-12-19 17:08:13 +01:00
Sipke Schoorstra 57a8693c21
Explicit EF identity specification + DateTime serialization issue (#212)
* Explicitly specify identity for Id columns

This fixes an issue where EF Core 2.2 does not set Identity = Yes when
defining the Id columns.

* Fix DateTime serialization issue

This change fixes an issue by taking over the serialization of a DateTime value.
The problem with serializing a DateTime value as-is is that upon deserialization, the JToken type would be set as String instead of Date.
This is because NodaTime disables automatic date time handling for Instant types.
However that causes an issue when trying to serialize and deserialize DateTime values.

This change explicitly tests for DateTime values and handles it appropriately.
A future improvement might be to make this TypeNameHandlingConverter class extensible by implementing a provider-based model,
enabling developers to take control over how certain types are serialized.
2019-12-19 17:07:23 +01:00
Sipke Schoorstra 853abf4e62 Merge branch 'develop' into feature/elsa-2.0
# Conflicts:
#	Samples.sln
#	Samples.sln.DotSettings
#	src/samples/Sample04/Program.cs
2019-12-17 21:50:53 +01:00
Sipke Schoorstra 1daf8e25a0 Remove compiler warnings 2019-12-17 21:44:40 +01:00
Nate Hughey e55c17ea92 Feature - Customize Elsa.Persistence.EntityFrameworkCore Migrations and Schema (#204)
* Added PostgreSql support to Elsa.Persistence.EntityFrameworkCore via Npgsql.
* Customize Elsa.Persistence.EntityFrameworkCore Migrations and Schema.
* Added Context factory in Sample23 to use the IDbContextCustomSchema.
* Refactor the Custom Schema support to use the EFCore IDbContextOptionsExtension.
2019-12-17 21:38:58 +01:00
James Doran 205487425a
Variable fixes (#211)
* GetVariable<T> now uses Convert.ChangeType

Fixes issue where saving an Int32, serialising and deserialising, then accessing with GetVariable<int>(...) no longer causes type cast exception.
The saved value is a JValue which treats Int32 as Int64. Convert.ChangeType has a better chance of performing conversion without error.
Also returns default of T if the variable isn't found.

* Added SetVariable overload in Variables

To prevent double-wrapping objects in more than 1 Variable object
2019-12-13 17:51:01 +10:30
James Doran c8d7ac076f YesSql instance storage fixes (#209)
* WorkflowInstanceIndex now stores records correctly
* Saving a workflow instance now updates existing instance rather than creating a new document
* Fixed serialisation exception when saving existing instance containing NodaTime types
2019-12-11 08:15:05 +01:00
Sipke Schoorstra 61c9ac48c7 Update packages 2019-12-10 15:46:49 +01:00
Andale-online d9e27377b0 Feature: Startup Activities (#206)
* Feature: Startup Activities
2019-12-04 18:20:01 +01:00
Sipke Schoorstra 21744a5056 Update Sample04 with printing execution log to console 2019-12-04 13:10:47 +01:00
Sipke Schoorstra dce24b4f3b Refactor rename to updated workflow terminology 2019-11-29 13:32:05 +01:00
nhughey-evo a89897b8e1 Feature: Persistence Provider -> Added PostgreSql support to Elsa.Persistence.EntityFrameworkCore via Npgsql (#201) 2019-11-28 11:35:30 +01:00
Sipke Schoorstra 98fe6d21d7 Add SQL Server example 2019-11-26 22:54:06 +01:00
Sipke Schoorstra b7103188fd Incremental work on GraphQL 2019-11-24 22:02:14 +01:00
Sipke Schoorstra 34a3872693 Remove LastResult, refactor activity output 2019-11-24 15:25:16 +01:00
Sipke Schoorstra d9cf7c4f1c Incremental work on GraphQL 2019-11-23 15:08:40 +01:00
James Doran 7356bf10c8 Moved JavaScript DI extension method namespace (#179) (#196) 2019-11-23 08:21:20 +01:00
Antoine Griffard 6c2960e1dd Fix link on Orchard Core doc (#195) 2019-11-22 23:52:10 +01:00
Sipke Schoorstra baef007e2b Incremental work on GraphQL 2019-11-22 23:07:31 +01:00
Sipke Schoorstra ac3ea9573f Add icons to packages 2019-11-22 17:34:55 +01:00
Sipke Schoorstra 4b78e2740b Package icon test 2019-11-22 17:21:42 +01:00
Sipke Schoorstra a16811f517 Add Elsa.Activities.Reflection package to solution 2019-11-22 16:25:19 +01:00
James Doran 2e3993c472 Switch activity now sets "Result" output variable with the expression result (#193) 2019-11-22 15:32:41 +01:00
Peter Davis 2eab1fc080 Control flow extension methods (#192)
Just makes the code a little more readable 🙂
2019-11-22 15:32:19 +01:00
Sipke Schoorstra 675c0e94b0
Replace SmtpClient from System.Net.Mail with MailKit's (#194)
* Replace SmtpClient from System.Net.Mail with MailKit's
2019-11-22 15:29:35 +01:00
James Doran de57602023
Merge pull request #190 from elsa-workflows/feature/scripting-config
Add script options configuration (#179)
2019-11-22 08:42:51 +10:30
James Doran e805a74ad7 Moved WithJavaScriptOptions extension method into Elsa.Scripting.JavaScript project (#179) 2019-11-22 08:37:06 +10:30
Sipke Schoorstra 4ea15fc10a Add Docker badge 2019-11-21 22:56:17 +01:00
James Doran 9556b80016 Add script options configuration (#179) 2019-11-21 21:09:58 +10:30
Peter Davis e05192086e Scheduled MassTransit message delivery (#175)
Creating a sample workflow with scheduled message delivery

* Add MassTransit quartz job factory

* Add cancel schedule message activity

* Correlate MassTransit messages to workflow based on message properties

* Add cart expired and submitted workflow steps

* Add message schedule options configuration

* Code cleanup

* Update launch settings

* Cleanup send and publish activities

* Add scheduled time expression property
2019-11-21 08:14:01 +01:00
Peter Davis e47a952039 Add the ability to publish events via MassTransit (#187) 2019-11-20 10:27:53 +01:00
Sipke Schoorstra b545fd2aea
Add Dockerfile and docker-compose (#186)
Fixes #142
2019-11-19 19:25:56 +01:00
James Doran 788fe49225 Switch activity is now case-insensitive when matching expression result to outcomes (#183) 2019-11-19 08:47:17 +01:00
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
Peter Davis dad6c254f5 Add a function to allow creating GUID values from JS expressions (#172) 2019-11-18 08:04:48 +01:00
Peter Davis 28763c8b2f Fix issue with receive MassTransit message input variable use (#171) 2019-11-18 08:03:35 +01:00
Peter Davis cdb2c655f6 Fix issue with last result not returning underlying variable value (#170) 2019-11-18 08:02:33 +01:00
Sipke Schoorstra b0a5962f4a Fix variable serialization issues 2019-11-17 22:48:17 +01:00
Sipke Schoorstra 21f770bc48
Refactorings and fixes (#168)
* Variables are now stored including their type name for automatic deserialization into their actual type. This is important for use in expressions.
* **SplitObject** and **ExecuteMethod** now use workflow expressions instead of variable names. This allows for more flexibility.
* Improved **Join** activity to allow proper function within looping constructs.
* Improved Variables performance. Variables are no longer serialized/deserialized upon writing/reading perspectively, only when the workflow instance is persisted.
2019-11-17 20:43:16 +01:00
Andale-online 47e0795b66 Feature variables v2.01 with bugfix (#164)
* Changed Variables.cs to full IDictionary
with ConcurrentDictionary<string, object> backing

* Bugfix for long running flows
2019-11-16 15:30:04 +01:00
Sipke Schoorstra d1f7ce47b7
EF Core Provider rewrite (#165)
* Fixed EF provider

Fixes #144 , #145
2019-11-16 14:06:53 +01:00
Peter Davis a7a192cb53 Fix response message workflow instance correlation (#163)
* Add correlation id to workflow  response message

* Return message not correlating because of mismatching string formats
2019-11-16 08:29:05 +01:00
Andale-online e3054b46c8 Changed Variables.cs to full IDictionary (#161) 2019-11-15 22:27:23 +01:00
Andale-online 11d73ddeea Reflection/SplitObject/Bugfix (#162) 2019-11-15 21:52:57 +01:00
Andale-online 58d7bc654a GetVariable(string name, Type type) (#155)
* GetVariable(string name, Type type)
2019-11-15 10:37:01 +01:00