Commit graph

117 commits

Author SHA1 Message Date
Sipke Schoorstra e8b59aeb84 Incremental work on serialization of workflow definitions and instances 2020-04-19 12:26:36 +02:00
Sipke Schoorstra 1dd8db0c37 Various ForEach + WorkflowHost fixes 2020-04-19 10:32:10 +02:00
Sipke Schoorstra 5fcdba0e5b Incremental work on TimesheetManager example 2020-03-08 13:48:31 +01:00
Sipke Schoorstra 60bfb4e7b2
Added Graphql (#246)
* Added GraphQL using Hot Chocolate
2020-02-15 20:32:16 +01:00
Sipke Schoorstra 7e040aca51 Update CronEvent 2020-01-18 21:25:30 +01:00
Sipke Schoorstra b9e3a0ca36 Implement immediate launch of pending workflow blocked due to existing instance 2020-01-18 20:54:17 +01:00
Sipke Schoorstra dce2c4f9db Incremental work on timer event 2020-01-18 17:08:02 +01:00
Sipke Schoorstra d1ce5ce897 Merge branch 'develop' into feature/elsa-2.0
# Conflicts:
#	src/core/Elsa/ElsaServiceCollectionExtensions.cs
#	src/dashboard/Elsa.Dashboard.Web/Elsa.Dashboard.Web.csproj
#	src/dashboard/Elsa.Dashboard/Extensions/DashboardServiceCollectionExtensions.cs
#	src/dashboard/Elsa.Dashboard/Theme/argon-dashboard/package-lock.json
#	src/providers/Elsa.AspNetCore.Startup/TaskExecutingServer.cs
#	src/samples/Sample01/Sample01.csproj
#	src/samples/Sample02/Sample02.csproj
#	src/samples/Sample03/Sample03.csproj
#	src/samples/Sample04/Sample04.csproj
#	src/samples/Sample06/Sample06.csproj
#	src/samples/Sample07/Sample07.csproj
#	src/samples/Sample07/Startup.cs
#	src/samples/Sample08/Sample08.csproj
#	src/samples/Sample08/Startup.cs
#	src/samples/Sample09/Sample09.csproj
#	src/samples/Sample10/Sample10.csproj
#	src/samples/Sample11/Sample11.csproj
#	src/samples/Sample12/Sample12.csproj
#	src/samples/Sample13/Sample13.csproj
#	src/samples/Sample14/Sample14.csproj
#	src/samples/Sample15/Sample15.csproj
#	src/samples/Sample17/Sample17.csproj
#	src/samples/Sample18/Sample18.csproj
#	src/samples/Sample20/Sample20.csproj
#	src/samples/Sample21/Sample21.csproj
#	src/samples/Sample21/Startup.cs
#	src/samples/Sample22/Sample22.csproj
#	src/samples/Sample23/Sample23.csproj
#	src/samples/Sample24/Sample24.csproj
#	src/server/Elsa.Server.Host/Properties/PublishProfiles/FolderProfile.pubxml
2020-01-18 12:03:00 +01:00
Sipke Schoorstra 16e91e0de1
Replace TaskExecutingServer with StartupRunnerHostedService (#237)
This solves an issue where the Dashboard site would not be able to run in IIS, due to an IIS filter that expects a IISServer instance, while it was being decorated with a custom type.

Fortunately, as of .NET Core 3, background hosted services now execute before the server starts, which makes them perfect for async initialization.
2020-01-18 11:04:53 +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 4bc499ce1d
Use Duration instead of Period (#235)
Duration is semantically more correct in the context of were it's used.
2020-01-15 23:56:57 +01:00
Sipke Schoorstra e46f59d30e
Update packages (#233) 2020-01-15 22:39:47 +01:00
Sipke Schoorstra 40eef28fc7
Add web farm hosting support (#229)
* Implement distributed lock provider and workflow queue worker

* Add SQL Server lock provider
2020-01-14 23:11:50 +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 f938c32a8f Rename destination activity to target activity 2019-12-28 20:23:33 +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 ebc2a4a89e
Added VariableExpression (#217)
* Add VariableExpression

* Workflow Runner bug fixes
2019-12-25 12:10:39 +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
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
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 dce24b4f3b Refactor rename to updated workflow terminology 2019-11-29 13:32:05 +01:00
Sipke Schoorstra 34a3872693 Remove LastResult, refactor activity output 2019-11-24 15:25:16 +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
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
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
Peter Davis 28763c8b2f Fix issue with receive MassTransit message input variable use (#171) 2019-11-18 08:03:35 +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 11d73ddeea Reflection/SplitObject/Bugfix (#162) 2019-11-15 21:52:57 +01:00
Peter Davis 23183583c6 Add ability to specify MassTransit message endpoint URI (#157)
If you wanted to message a particular service, then you will need to know the queue URI for that service to send the message to.
2019-11-15 10:27:56 +01:00
Peter Davis 4b20841ea7 MassTransit Fixes (#148)
* Fix issue #134 where consumer could not be created

* Fix issue where message was null in ReceiveMassTransitMessage

input variables are case sensitive

* Add simple test script to execute the workflow

* Add message type as input from consumer

* Allow passwords to be specified in amqp URI
2019-11-15 10:19:20 +01:00
Andale-online cccf5c831d Added else to switch (#149)
Closes #136
2019-11-14 10:06:02 +01:00
Stephan Baltzer 2f9b6cae5d Elsa.Activities.Reflection 2019-11-12 18:47:44 +01:00
Sipke Schoorstra a6329d1bd5 Minor cleanup 2019-11-09 13:57:00 +01:00
Sipke Schoorstra 3fd0cb5270
Refactor Variable serialization to convert to JValue (#120)
This removes the confusion where a specific object will retain its type when serialized, which is not the case.
2019-11-03 14:33:34 +01:00
Sipke Schoorstra 75839a0ddb Fix DI bug in SignalRequestHandler 2019-11-01 14:16:59 +01:00
Sipke Schoorstra 57f116c239
Fix object disposed bug (#116)
* Refactor buggy SignalRequestHandler

For some reason, the following code is problematic:

await DecryptToken()
                .BindAsync(GetWorkflowInstanceAsync)
                .BindAsync(CheckIfExecutingAsync)
                .MapAsync(ResumeWorkflowAsync);

Basically, any lambda in the BindAsync and MapAsync could execute even after the containing method returned

* Implement better message handler registration without adding multiple IMediator services

* Abstracted Mediator service registration methods.
* Add Liquid support for JObject.
2019-10-31 21:31:18 +01:00
Sipke Schoorstra e162391c30 Update package descriptions and renamed some activities 2019-10-27 17:31:50 +01:00
Sipke Schoorstra bc04b00196 Merge branch 'develop'
# Conflicts:
#	Samples.sln
#	src/activities/Elsa.Activities.Timers/Elsa.Activities.Timers.csproj
#	src/core/Elsa.Abstractions/Services/IActivityBuilder.cs
#	src/core/Elsa.Core/Elsa.Core.csproj
#	src/core/Elsa.Core/WorkflowBuilders/ActivityBuilder.cs
#	src/samples/Sample17/Activities/CreatePerson.cs
#	src/samples/Sample17/CreatePersonWorkflow.cs
#	src/samples/Sample17/Program.cs
#	src/samples/Sample17/Sample17.csproj
2019-10-27 16:05:55 +01:00
Sipke Schoorstra aef8741d84
Add Liquid expressions (#111)
* Reorganize projects

* Implement Liquid expression evaluator

* Refactor activity references to use `Name`
2019-10-27 15:38:37 +01:00
Sipke Schoorstra cb25239fd1
Add While activity (#110)
* Implement While activity

* Variable scope bug fixes

* Merge designer attributes with activity definition

* Update package references
2019-10-26 12:46:20 +02:00
Sipke Schoorstra 99ee3cacce Downgrade dependencies 2019-10-25 17:55:39 +02:00