diff --git a/src/modules/Elsa.Workflows.Management/Services/WorkflowDefinitionManager.cs b/src/modules/Elsa.Workflows.Management/Services/WorkflowDefinitionManager.cs index b1d463227..c6202d065 100644 --- a/src/modules/Elsa.Workflows.Management/Services/WorkflowDefinitionManager.cs +++ b/src/modules/Elsa.Workflows.Management/Services/WorkflowDefinitionManager.cs @@ -7,38 +7,21 @@ using Elsa.Workflows.Management.Notifications; namespace Elsa.Workflows.Management.Services; /// -public class WorkflowDefinitionManager : IWorkflowDefinitionManager +public class WorkflowDefinitionManager( + IWorkflowDefinitionStore store, + INotificationSender notificationSender, + IWorkflowDefinitionPublisher workflowPublisher) : IWorkflowDefinitionManager { - private readonly IWorkflowDefinitionStore _store; - private readonly INotificationSender _notificationSender; - private readonly IWorkflowDefinitionPublisher _workflowPublisher; - private readonly IIdentityGenerator _identityGenerator; - - /// - /// Constructor. - /// - public WorkflowDefinitionManager( - IWorkflowDefinitionStore store, - INotificationSender notificationSender, - IWorkflowDefinitionPublisher workflowPublisher, - IIdentityGenerator identityGenerator) - { - _store = store; - _notificationSender = notificationSender; - _workflowPublisher = workflowPublisher; - _identityGenerator = identityGenerator; - } - /// public async Task DeleteByDefinitionIdAsync(string definitionId, CancellationToken cancellationToken = default) { - await _notificationSender.SendAsync(new WorkflowDefinitionDeleting(definitionId), cancellationToken); + await notificationSender.SendAsync(new WorkflowDefinitionDeleting(definitionId), cancellationToken); var filter = new WorkflowDefinitionFilter { DefinitionId = definitionId }; - var count = await _store.DeleteAsync(filter, cancellationToken); - await _notificationSender.SendAsync(new WorkflowDefinitionDeleted(definitionId), cancellationToken); + var count = await store.DeleteAsync(filter, cancellationToken); + await notificationSender.SendAsync(new WorkflowDefinitionDeleted(definitionId), cancellationToken); return count; } @@ -49,7 +32,7 @@ public class WorkflowDefinitionManager : IWorkflowDefinitionManager { Id = id }; - var definition = await _store.FindAsync(filter, cancellationToken); + var definition = await store.FindAsync(filter, cancellationToken); if (definition == null) return false; @@ -61,15 +44,15 @@ public class WorkflowDefinitionManager : IWorkflowDefinitionManager public async Task BulkDeleteByDefinitionIdsAsync(IEnumerable definitionIds, CancellationToken cancellationToken = default) { var definitionIdList = definitionIds.Distinct().ToList(); - await _notificationSender.SendAsync(new WorkflowDefinitionsDeleting(definitionIdList), cancellationToken); + await notificationSender.SendAsync(new WorkflowDefinitionsDeleting(definitionIdList), cancellationToken); var filter = new WorkflowDefinitionFilter { DefinitionIds = definitionIdList, IsReadonly = false }; - var count = await _store.DeleteAsync(filter, cancellationToken); + var count = await store.DeleteAsync(filter, cancellationToken); await EnsureLastVersionIsLatestAsync(definitionIdList, cancellationToken); - await _notificationSender.SendAsync(new WorkflowDefinitionsDeleted(definitionIdList), cancellationToken); + await notificationSender.SendAsync(new WorkflowDefinitionsDeleted(definitionIdList), cancellationToken); return count; } @@ -77,19 +60,19 @@ public class WorkflowDefinitionManager : IWorkflowDefinitionManager public async Task BulkDeleteByIdsAsync(IEnumerable ids, CancellationToken cancellationToken = default) { var idList = ids.ToList(); - var definitions = await _store.FindSummariesAsync(new WorkflowDefinitionFilter + var definitions = await store.FindSummariesAsync(new WorkflowDefinitionFilter { Ids = idList }, cancellationToken); var definitionIds = definitions.Select(x => x.DefinitionId).Distinct().ToList(); - await _notificationSender.SendAsync(new WorkflowDefinitionVersionsDeleting(idList), cancellationToken); + await notificationSender.SendAsync(new WorkflowDefinitionVersionsDeleting(idList), cancellationToken); var filter = new WorkflowDefinitionFilter { Ids = idList }; - var count = await _store.DeleteAsync(filter, cancellationToken); + var count = await store.DeleteAsync(filter, cancellationToken); await EnsureLastVersionIsLatestAsync(definitionIds, cancellationToken); - await _notificationSender.SendAsync(new WorkflowDefinitionVersionsDeleted(idList), cancellationToken); + await notificationSender.SendAsync(new WorkflowDefinitionVersionsDeleted(idList), cancellationToken); return count; } @@ -101,7 +84,7 @@ public class WorkflowDefinitionManager : IWorkflowDefinitionManager DefinitionId = definitionId, VersionOptions = VersionOptions.SpecificVersion(versionToDelete) }; - var definitionToDelete = await _store.FindAsync(filter, cancellationToken); + var definitionToDelete = await store.FindAsync(filter, cancellationToken); if (definitionToDelete == null) return false; @@ -114,22 +97,22 @@ public class WorkflowDefinitionManager : IWorkflowDefinitionManager { if (definitionToDelete.IsPublished) { - await _workflowPublisher.RetractAsync(definitionToDelete, cancellationToken); + await workflowPublisher.RetractAsync(definitionToDelete, cancellationToken); } - await _notificationSender.SendAsync(new WorkflowDefinitionVersionDeleting(definitionToDelete), cancellationToken); + await notificationSender.SendAsync(new WorkflowDefinitionVersionDeleting(definitionToDelete), cancellationToken); var filter = new WorkflowDefinitionFilter { Id = definitionToDelete.Id }; - var isDeleted = await _store.DeleteAsync(filter, cancellationToken) > 0; + var isDeleted = await store.DeleteAsync(filter, cancellationToken) > 0; if (!isDeleted) return false; await EnsureLastVersionIsLatestAsync(definitionToDelete.DefinitionId, cancellationToken); - await _notificationSender.SendAsync(new WorkflowDefinitionVersionDeleted(definitionToDelete), cancellationToken); + await notificationSender.SendAsync(new WorkflowDefinitionVersionDeleted(definitionToDelete), cancellationToken); return isDeleted; } @@ -137,7 +120,7 @@ public class WorkflowDefinitionManager : IWorkflowDefinitionManager /// public Task RevertVersionAsync(string definitionId, int version, CancellationToken cancellationToken = default) { - return _workflowPublisher.RevertVersionAsync(definitionId, version, cancellationToken); + return workflowPublisher.RevertVersionAsync(definitionId, version, cancellationToken); } private async Task EnsureLastVersionIsLatestAsync(IEnumerable definitionIds, CancellationToken cancellationToken) @@ -157,12 +140,12 @@ public class WorkflowDefinitionManager : IWorkflowDefinitionManager { DefinitionId = definitionId }; - var lastVersion = await _store.FindLastVersionAsync(filter, cancellationToken); + var lastVersion = await store.FindLastVersionAsync(filter, cancellationToken); if (lastVersion is null) return; lastVersion.IsLatest = true; - await _store.SaveAsync(lastVersion, cancellationToken); + await store.SaveAsync(lastVersion, cancellationToken); } } \ No newline at end of file