Commit graph

1078 commits

Author SHA1 Message Date
Sipke Schoorstra d6d44ff57b Improve ParallelForEach extensions 2021-03-26 11:40:22 +01:00
Sipke Schoorstra 61b57de61c Turn Fork into self-cleaning scoped activity 2021-03-26 11:40:22 +01:00
Sipke Schoorstra 7e3464c504 WIP: CallRingGroup 2021-03-26 11:40:22 +01:00
Sipke Schoorstra 6fef9874da **BREAKING API** Update Builder API to allow to connect to named activities as well as activities by type name
This replaces the `Then(string activityName)` method with `ThenNamed(string activityName)`.
A new method is added to allow connecting to activities by type name: `ThenTypeNamed(string activityTypeName)`.

The reason for this change and addition is to allow workflow builders to connect to activity types that do not have a corresponding type.
For example, the Telnyx project has an activity type provider that *dynamically* provides activity types based on Telnyx webhook callback types.
2021-03-26 11:40:22 +01:00
Sipke Schoorstra 5d8d05aec5 Stash 2021-03-26 11:40:22 +01:00
Craig Fowler 009f840477
Merge pull request #805 from craigfowler/feature/785-StringValuesModel-improvements
Resolve #785 - improve API for StringValuesModel
2021-03-25 22:50:51 +00:00
Craig Fowler a81d47afff Resolve #785 - improve API for StringValuesModel
This means that the model:
* Implements IConvertible so that Jint may implicitly convert
  it to other types as if it were just a string.
* The Values & Values properties are perhaps a little less confusing
  now, and present a more consistent set of state, regardless of
  the inner model.
* There's a minor simplification to ToString, since String.Join already
  did what we wanted for one or many values.

Notable though is - because this class implements IConvertible,
it is no longer CLS compliant.  We do not currently mark this assembly
as CLS complient so as things stand that's OK.  I do not know if there
are any plans/expectations for CLS compliance in Elsa.

If we do plan to mark the assemblies as compliant then we must mark this
class [CLSCompliant(false)].
2021-03-25 21:10:25 +00:00
Sipke Schoorstra a4ad46c51d
Update README.md 2021-03-24 12:00:02 +01:00
tomy2105 25ad50de02 Update elsa-designer-tree-activity.tsx
Double click to open activity.
2021-03-23 20:02:52 +01:00
Sipke Schoorstra 3ab0c94f94 Hide a couple of warnings 2021-03-23 14:52:11 +01: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 fe915fc6fd Fix Break activity 2021-03-23 14:05:56 +01:00
Sipke Schoorstra 66dabb8ce9 Add SetVariable overload with updater callback 2021-03-22 22:05:13 +01:00
Sipke Schoorstra 185c2dde44 SetVariable extension improvements 2021-03-22 22:04:49 +01:00
Sipke Schoorstra 48ff06d26e Add workflow context class type constraint 2021-03-22 21:24:30 +01:00
Sipke Schoorstra 3b185d31e9 New fix for Switch activity 2021-03-22 21:23:58 +01:00
Sipke Schoorstra f10d33b77e Fix Switch activity
The Switch activity did not reset its state in full, causing it to not re-evaluate its branches when looping back onto it
2021-03-22 08:40:16 +01:00
Craig Fowler ee7a8cdb1b
Merge pull request #775 from craigfowler/feature/738-Composite-Activities-may-be-triggers
Refactor for comprehension & add test coverage
2021-03-20 11:29:28 +00:00
Craig Fowler f91e224314 Fix intermittent failing tests
The issue here is that the elsa.db for sqlite is going in the same
path every time.  Depending on the order in which tests are run,
sometimes it means that migrations are run on a DB which is
expected to be empty but which already exists.  That causes an
error & test failure.

Here I've just used temp folders to ensure that the DB file is in a
different path every time.
2021-03-20 11:14:35 +00:00
Craig Fowler 2539f6425a WIP #738 - Integration tests for Trigger Indexer
One of these tests is failing and this is the one which
demonstrates issue #738. The composite activity which begins
with ReceiveSignal doesn't generate a trigger.
2021-03-20 10:42:41 +00:00
Konstantin Mikhailyuk bc986ec003
#667 - Move webhook client api to ElsaClient (#774)
* WIP #667 - Webhook activity project

* WIP #667 - Webhook definition with InMemoryStore

* WIP #667 - Add Webhook activity provider

* Prevent part assembly generation

See https://github.com/dotnet/aspnetcore/issues/24171

* Make optional args optional

* Small changes

* Move Refit client api to ElsaClient

Co-authored-by: Sipke Schoorstra <sipkeschoorstra@outlook.com>
2021-03-20 07:45:08 +01:00
Konstantin Mikhailyuk caf15ecc70
WIP #667 - Webhook activity project (#718)
* Webhook activity project

* Webhook definition with InMemoryStore

* Add Webhook activity provider

* Prevent part assembly generation. See https://github.com/dotnet/aspnetcore/issues/24171

Co-authored-by: Sipke Schoorstra <sipkeschoorstra@outlook.com>
2021-03-19 21:15:50 +01:00
Sipke Schoorstra 58648339c8 Build optimized tailwind.css 2021-03-19 21:02:35 +01:00
Sipke Schoorstra ba8b4bffcc Add support for setting default activity property values 2021-03-19 21:02:35 +01:00
Craig Fowler 3943e64c70 WIP #738 - Add test coverage to replace big test
The large/complex test is now removed, replaced by
smaller/simpler unit tests for the individual units in
the overall process of getting triggers.
2021-03-19 19:45:16 +00:00
Sipke Schoorstra a880873337 Update Telnyx activities to use CorrelationId if no CallControlId was specified 2021-03-19 14:25:25 +01:00
Sipke Schoorstra 37eeed2cd0 Implement activity property categorization 2021-03-19 14:25:25 +01:00
Sipke Schoorstra 8fb2091813 Rename "timers" solution folder to "temporal" 2021-03-19 14:25:25 +01:00
Sipke Schoorstra 1dd15f7a21 Fix lifetime scopes 2021-03-19 12:21:19 +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
Craig Fowler 6700ac2402 WIP #738 - Simplify unit test
Now that the class is a little less complex, this
simplified unit test covers just what remains.
2021-03-18 21:22:19 +00:00
Craig Fowler 9ec698c7bc WIP #738 - Refactor a troublesome extension method
This extension method is quite complex and is frustrating
when a unit test passes-through it.  That's because extension
methods can't be mocked in tests.
2021-03-18 21:09:04 +00:00
Craig Fowler f00f02041a WIP #738 - Further refactor (remove loop)
This is pretty trivial really, it just cuts down on
indentation and moves the looping into a Linq
map (Select) which builds a collection and then
reduces it (SelectMany) to a flattened collection.

Also remove some needless await'ing.
2021-03-18 20:40:09 +00:00
Craig Fowler d9724e5267 WIP #738 - Refactor-out a further service
The triggers-for-activity-blueprint functionality
is quite complex just on its own, so I have moved this to
a new service.

Once again the integration test which is left behind proves
that it still does the same job.
2021-03-18 20:29:06 +00:00
Craig Fowler 654f3072d9 WIP #738 - Refactor some logic into services
This simplifies the unit a little and the test proves that
it still does the same thing overall.  Strictly speaking, this
is now an integration test.
2021-03-18 19:35:05 +00:00
Craig Fowler 1dee17b904 WIP #738 - Add test coverage for new service
This test passes, but as you can see it's
massive because of the complexity of what the
class has to do.
2021-03-18 18:54:23 +00:00
Sipke Schoorstra ac32034d00 Implement activity property UI customizability 2021-03-18 14:28:44 +01:00
Sipke Schoorstra ccffcf52d3 Set default Telnyx ApiUrl 2021-03-18 14:28:44 +01:00
Sipke Schoorstra c62cac9ecb Dashboard hosting model improvements 2021-03-18 12:18:22 +01:00
Sipke Schoorstra 832afc1110 Update appveyor.yml to use default Node installation (which appears to be v14) 2021-03-18 11:25:38 +01:00
Sipke Schoorstra 0673d6e192 Register MediatR
When the dashboard application does not reference Elsa services, Mediatr also isn't registered implicitly.
2021-03-18 11:25:07 +01:00
Sipke Schoorstra 0434b4825a Update packages 2021-03-18 11:24:04 +01:00
Sipke Schoorstra 74432de409 Update relative path 2021-03-17 23:05:38 +01:00
Sipke Schoorstra 71e4bbecbb Update relative paths 2021-03-17 23:02:38 +01:00
Sipke Schoorstra 016eaf6abb Add docker credentials 2021-03-17 22:56:37 +01:00
Sipke Schoorstra 2c37b81645 Remove global.json 2021-03-17 22:46:49 +01:00
Sipke Schoorstra b663935248 Docker build test 1 2021-03-17 22:33:27 +01:00
Sipke Schoorstra 50603bf8bd Add distinction between Elsa Server accessed from same process and from out of process (e.g. browser) 2021-03-17 22:14:18 +01:00
Sipke Schoorstra cb05f36919 Add docker files for ElsaDashboard.Samples.Monolith app 2021-03-17 22:13:05 +01:00
Craig Fowler 523c96a535 WIP #738 - Straight refactor to new service (SRP)
There's no logic change here at all.  I just moved a large function
out of the TriggerIndexer into a service of its own.
2021-03-17 19:47:58 +00:00