Commit graph

1170 commits

Author SHA1 Message Date
Sipke Schoorstra 3bca56f0ff Incremental work on property editor modes 2021-04-04 15:37:28 +02:00
Craig Fowler 8413cb0e55
Merge pull request #834 from craigfowler/composable-autofixture-attributes
Add composable autofixture attributes
2021-04-02 21:04:18 +01:00
Craig Fowler 189b4a69bb
Correct typo 2021-04-02 21:03:33 +01:00
Sipke Schoorstra 9d333ec5b8 Add Document Approval sample project 2021-04-02 16:56:08 +02:00
Sipke Schoorstra 7f38b01db5 Fix TriggersWorkflows to ignore null/empty correlation IDs 2021-04-02 16:55:46 +02:00
Sipke Schoorstra 7e6c8774e8 Add SetVariableExtensions 2021-04-02 16:55:18 +02:00
Sipke Schoorstra 9bcc32d15a Code formatting 2021-04-02 16:55:04 +02:00
Sipke Schoorstra 461e38bb32 Fix Fork activity 2021-04-02 16:54:26 +02:00
Sipke Schoorstra 8b0b479b92 Fix signaling 2021-04-02 16:54:13 +02:00
Sipke Schoorstra 0acc836f4b Fix signaling 2021-04-02 16:53:46 +02:00
Sipke Schoorstra a6d05cfce0 Remove StringValuesModel
Deserialization causes problems when a value is a single string
2021-04-02 16:52:31 +02:00
Craig Fowler da88ee1b95 Trivial: Make running tests less noisy 2021-04-02 13:46:47 +01:00
Craig Fowler 2e3aef2740 Merge remote-tracking branch 'elsa-core/feature/elsa-2.0' into 751-postgres-yessql-exception 2021-04-02 13:46:13 +01:00
Craig Fowler 7044e69231 Refactor one test to use new Autofixture resolution attribute
This change means that a service provider may use both the Frozen
specimen builder and also the 'with autofixture resolution' behaviour.
That means that some unwanted extra logic in the test may now be
removed, with the test objects also coming from Autofixture.
2021-04-02 13:29:46 +01:00
Craig Fowler 282c90f80f Further fixup & refactoring of Autofixture attribs
This now also includes reworking the attribute which activates
Autofixture-style resolution upon an IServiceProvider.
This has now been renamed to WithAutofixtureResolutionAttribute.

The new/reworked attribute is composable with other Autofixture
attributes.
2021-04-02 13:28:27 +01:00
Sipke Schoorstra c6ad488a0b Remove docker code 2021-04-02 13:23:04 +02:00
Sipke Schoorstra 0dc2dd08bf Add FodyWeavers.xml 2021-04-02 13:09:15 +02:00
Sipke Schoorstra 207bbdb60e Update Elsa.Server.Hangfire.csproj 2021-04-02 13:08:33 +02:00
Craig Fowler f2b27480fc Trivial - remove redundant types 2021-04-02 12:08:05 +01:00
Sipke Schoorstra 881f0acb7a Fix tests 2021-04-02 12:43:14 +02:00
Sipke Schoorstra 1dfa36b9c8 Extract Quartz registration extensions into separate methods
This allows the caller to control whether or not Quartz itself should be registered.
2021-04-02 12:43:14 +02:00
Sipke Schoorstra 23e3d1fd81 Fix JavaScriptExpressionsIntegrationTests 2021-04-02 12:43:14 +02:00
Sipke Schoorstra b05861a2c0 Set command timeout to lock timeout if higher tan default of 30s 2021-04-02 12:43:14 +02:00
Sipke Schoorstra 55c77454eb Fix couple of warnings 2021-04-02 12:43:14 +02:00
Sipke Schoorstra 53877b68fc Extract workflow dispatch logic into reusable mediator command handlers 2021-04-02 12:43:14 +02:00
Sipke Schoorstra ac61b7fc70 Add Hangfire dispatcher implementation 2021-04-02 12:43:14 +02:00
Sipke Schoorstra 9b91618286 Mark grains as stateless 2021-04-02 12:43:14 +02:00
Sipke Schoorstra 3fc3f792f2 Signaling refactorings 2021-04-02 12:43:14 +02:00
Sipke Schoorstra d9b0f01029 Fix Hello World HTTP sample 2021-04-02 12:43:14 +02:00
Sipke Schoorstra 013b5965d9 Update HttpEndpoint with default method "GET" 2021-04-02 12:43:14 +02:00
Sipke Schoorstra e58ea09353 Remove unused class 2021-04-02 12:43:14 +02:00
Sipke Schoorstra dd658a8744 Adding missing service registration 2021-04-02 12:43:14 +02:00
Sipke Schoorstra 912d98e7bd Adding missing service registrations 2021-04-02 12:43:14 +02:00
Sipke Schoorstra 38be994e31 Break up WorkflowRunner into smaller types and extracted reusable trigger logic 2021-04-02 12:43:14 +02:00
Sipke Schoorstra 0d3e19dcd3 WIP: Orleans grains 2021-04-02 12:43:14 +02:00
Sipke Schoorstra 4cf43882dc Update packages 2021-04-02 12:43:14 +02:00
Sipke Schoorstra fbb574213a Fix SetVariable extensions 2021-04-02 12:43:14 +02:00
Sipke Schoorstra c019599fae Add extensions to register dispatchers 2021-04-02 12:43:14 +02:00
Sipke Schoorstra 5796cf2893 Fix warnings and formatting 2021-04-02 12:43:14 +02:00
Sipke Schoorstra f91caf14bc Update Azure Service Bus workers to use new dispatcher APIs 2021-04-02 12:43:14 +02:00
Sipke Schoorstra bd87f5b2df Incremental work on default dispatchers in preparation for actor model implementation 2021-04-02 12:43:14 +02:00
Craig Fowler 8379d4a70c Complete refactoring for composable attributes
This takes the work begun in
  d285b8b505
and completes it for all other attributes/usages.
2021-04-02 11:41:06 +01:00
Craig Fowler 088cf7fdf6 Merge remote-tracking branch 'elsa-core/feature/elsa-2.0' into 751-postgres-yessql-exception 2021-04-02 11:14:16 +01:00
Craig Fowler d285b8b505 WIP composing customize attributes
This isn't really related to #751 - it's a refactor of some of
our test logic, to avoid bloat of semi-repeated autofixture
customization attributes.

By switching to a behaviour-driven model, it's possible to
compose them, which means that there's no need to part-duplicate
between them.  It should also reduce the overall number of them,
as combinations can be put together on-demand, rather than needing
a new attribute of their own.
2021-04-02 11:12:21 +01:00
Craig Fowler e21154f7b8 Fixup for #761 - Now with 100% fewer compile errors!
Yeah, my bad :D
2021-04-01 20:25:09 +02:00
Craig Fowler 0eaa11e69d Trivial - correct a typo in class naming 2021-04-01 20:25:09 +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