diff --git a/src/activities/Elsa.Activities.AzureServiceBus/Extensions/ServiceCollectionExtensions.cs b/src/activities/Elsa.Activities.AzureServiceBus/Extensions/ServiceCollectionExtensions.cs index 86604cd56..17fa66b5a 100644 --- a/src/activities/Elsa.Activities.AzureServiceBus/Extensions/ServiceCollectionExtensions.cs +++ b/src/activities/Elsa.Activities.AzureServiceBus/Extensions/ServiceCollectionExtensions.cs @@ -1,7 +1,7 @@ using System; +using Elsa.Activities.AzureServiceBus.HostedServices; using Elsa.Activities.AzureServiceBus.Options; using Elsa.Activities.AzureServiceBus.Services; -using Elsa.Activities.AzureServiceBus.StartupTasks; using Elsa.Activities.AzureServiceBus.Triggers; using Microsoft.Azure.ServiceBus; using Microsoft.Azure.ServiceBus.Management; diff --git a/src/activities/Elsa.Activities.AzureServiceBus/StartupTasks/StartServiceBusQueues.cs b/src/activities/Elsa.Activities.AzureServiceBus/HostedServices/StartServiceBusQueues.cs similarity index 81% rename from src/activities/Elsa.Activities.AzureServiceBus/StartupTasks/StartServiceBusQueues.cs rename to src/activities/Elsa.Activities.AzureServiceBus/HostedServices/StartServiceBusQueues.cs index a4a50a3a4..ae51da712 100644 --- a/src/activities/Elsa.Activities.AzureServiceBus/StartupTasks/StartServiceBusQueues.cs +++ b/src/activities/Elsa.Activities.AzureServiceBus/HostedServices/StartServiceBusQueues.cs @@ -9,18 +9,16 @@ using Elsa.Services; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; -namespace Elsa.Activities.AzureServiceBus.StartupTasks +namespace Elsa.Activities.AzureServiceBus.HostedServices { public class StartServiceBusQueues : BackgroundService { - private readonly IWorkflowRegistry _workflowRegistry; private readonly IWorkflowBlueprintReflector _workflowBlueprintReflector; private readonly IMessageReceiverFactory _messageReceiverFactory; private readonly IServiceProvider _serviceProvider; - public StartServiceBusQueues(IWorkflowRegistry workflowRegistry, IWorkflowBlueprintReflector workflowBlueprintReflector, IMessageReceiverFactory messageReceiverFactory, IServiceProvider serviceProvider) + public StartServiceBusQueues(IWorkflowBlueprintReflector workflowBlueprintReflector, IMessageReceiverFactory messageReceiverFactory, IServiceProvider serviceProvider) { - _workflowRegistry = workflowRegistry; _workflowBlueprintReflector = workflowBlueprintReflector; _messageReceiverFactory = messageReceiverFactory; _serviceProvider = serviceProvider; @@ -40,7 +38,9 @@ namespace Elsa.Activities.AzureServiceBus.StartupTasks private async IAsyncEnumerable GetQueueNamesAsync([EnumeratorCancellation] CancellationToken cancellationToken) { - var workflows = await _workflowRegistry.GetWorkflowsAsync(cancellationToken).ToListAsync(cancellationToken); + using var scope = _serviceProvider.CreateScope(); + var workflowRegistry = scope.ServiceProvider.GetRequiredService(); + var workflows = await workflowRegistry.GetWorkflowsAsync(cancellationToken).ToListAsync(cancellationToken); var query = from workflow in workflows diff --git a/src/samples/Elsa.Samples.AzureServiceBusWorker/Workflows/ProducerWorkflow.cs b/src/samples/Elsa.Samples.AzureServiceBusWorker/Workflows/ProducerWorkflow.cs index e8bbc1919..a6bfc1bc9 100644 --- a/src/samples/Elsa.Samples.AzureServiceBusWorker/Workflows/ProducerWorkflow.cs +++ b/src/samples/Elsa.Samples.AzureServiceBusWorker/Workflows/ProducerWorkflow.cs @@ -10,10 +10,12 @@ namespace Elsa.Samples.AzureServiceBusWorker.Workflows { public class ProducerWorkflow : IWorkflow { + private readonly IClock _clock; private readonly Random _random; - public ProducerWorkflow() + public ProducerWorkflow(IClock clock) { + _clock = clock; _random = new Random(); } @@ -27,8 +29,9 @@ namespace Elsa.Samples.AzureServiceBusWorker.Workflows private Greeting GetRandomGreeting() { + var today = _clock.GetCurrentInstant().InUtc().Date.DayOfWeek; var names = new[] { "John", "Jill", "Julia", "Miriam", "Jack", "Bob" }; - var messages = new[] { "Hello!", "How do you do?", "Happy Monday!" }; + var messages = new[] { "Hello!", "How do you do?", $"Happy {today}!" }; var from = _random.Next(0, names.Length); var to = _random.Next(0, names.Length); var message = _random.Next(0, messages.Length);