diff --git a/src/activities/Elsa.Activities.Temporal.Hangfire/Extensions/TimersOptionsExtensions.cs b/src/activities/Elsa.Activities.Temporal.Hangfire/Extensions/TimersOptionsExtensions.cs
index 463060d74..21ba35bf9 100644
--- a/src/activities/Elsa.Activities.Temporal.Hangfire/Extensions/TimersOptionsExtensions.cs
+++ b/src/activities/Elsa.Activities.Temporal.Hangfire/Extensions/TimersOptionsExtensions.cs
@@ -23,13 +23,13 @@ namespace Elsa
}
///
- /// Add Elsa Hangfire Services for background processing and Hangfire Services
+ /// Add Elsa Hangfire Services for background processing and Hangfire services.
///
///
- /// Only if Hangfire is not already registered in DI
+ /// Use only if Hangfire is not already registered in DI.
///
- ///
- /// Hangfire settings
+ /// The TimersOptions being configured
+ /// Configure Hangfire settings
public static void UseHangfire(this TimersOptions timersOptions, Action configure)
{
timersOptions.UseHangfire();
diff --git a/src/activities/Elsa.Activities.Temporal.Quartz/Extensions/TimersOptionsExtensions.cs b/src/activities/Elsa.Activities.Temporal.Quartz/Extensions/TimersOptionsExtensions.cs
index 139c83b3a..5332c9989 100644
--- a/src/activities/Elsa.Activities.Temporal.Quartz/Extensions/TimersOptionsExtensions.cs
+++ b/src/activities/Elsa.Activities.Temporal.Quartz/Extensions/TimersOptionsExtensions.cs
@@ -11,39 +11,51 @@ namespace Elsa
{
public static class TimersOptionsExtensions
{
- public static void UseQuartzProvider(this TimersOptions timersOptions, Action? configureOptions = default, Action? configureQuartz = default)
+ ///
+ /// Add Elsa Quartz services.
+ ///
+ public static void UseQuartzProvider(this TimersOptions timersOptions)
{
- if (configureOptions != null)
- timersOptions.Services.Configure(configureOptions);
- else
- timersOptions.Services.AddOptions();
-
- timersOptions.Services.AddQuartz(configure => ConfigureQuartz(configure, configureQuartz))
- .AddQuartzHostedService(ConfigureQuartzHostedService)
+ timersOptions.Services
.AddSingleton()
.AddSingleton()
.AddTransient();
}
- private static void ConfigureQuartzHostedService(QuartzHostedServiceOptions options)
+ ///
+ /// Add Elsa Hangfire Services and Quartz services.
+ ///
+ ///
+ /// Use only if Quartz is not already registered in DI.
+ ///
+ public static void UseQuartzProvider(
+ this TimersOptions timersOptions,
+ Action configureOptions,
+ Action? configureQuartz = default,
+ Action? configureQuartzHostedService = default)
+ {
+ timersOptions.UseQuartzProvider();
+ timersOptions.Services.Configure(configureOptions);
+
+ timersOptions.Services
+ .AddQuartz(configure => ConfigureQuartz(configure, configureQuartz))
+ .AddQuartzHostedService(options => ConfigureQuartzHostedService(options, configureQuartzHostedService));
+ }
+
+ private static void ConfigureQuartzHostedService(QuartzHostedServiceOptions options, Action? configureQuartzHostedService)
{
options.WaitForJobsToComplete = true;
+ configureQuartzHostedService?.Invoke(options);
}
private static void ConfigureQuartz(IServiceCollectionQuartzConfigurator quartz, Action? configureQuartz)
{
quartz.UseMicrosoftDependencyInjectionScopedJobFactory(options => options.AllowDefaultConstructor = true);
quartz.AddJob(job => job.StoreDurably().WithIdentity(nameof(RunQuartzWorkflowJob)));
-
- if (configureQuartz != null)
- {
- configureQuartz(quartz);
- }
- else
- {
- quartz.UseSimpleTypeLoader();
- quartz.UseInMemoryStore();
- }
+ quartz.UseSimpleTypeLoader();
+ quartz.UseInMemoryStore();
+
+ configureQuartz?.Invoke(quartz);
}
}
}
\ No newline at end of file