diff --git a/Elsa.sln.DotSettings b/Elsa.sln.DotSettings index 7358932e8..c25f6b660 100644 --- a/Elsa.sln.DotSettings +++ b/Elsa.sln.DotSettings @@ -3,4 +3,5 @@ ExplicitlyExcluded True - ExplicitlyExcluded \ No newline at end of file + ExplicitlyExcluded + True \ No newline at end of file diff --git a/src/core/Elsa.Abstractions/Persistence/IWorkflowDefinitionStore.cs b/src/core/Elsa.Abstractions/Persistence/IWorkflowDefinitionStore.cs index 5d1f16409..5c99d6460 100644 --- a/src/core/Elsa.Abstractions/Persistence/IWorkflowDefinitionStore.cs +++ b/src/core/Elsa.Abstractions/Persistence/IWorkflowDefinitionStore.cs @@ -13,6 +13,5 @@ namespace Elsa.Persistence Task> ListAsync(int? skip = default, int? take = default, VersionOptions? version = default, CancellationToken cancellationToken = default); Task GetAsync(string workflowDefinitionId, VersionOptions version, CancellationToken cancellationToken = default); Task GetByVersionIdAsync(string workflowDefinitionVersionId, CancellationToken cancellationToken = default); - WorkflowDefinition Initialize(WorkflowDefinition workflowDefinition); } } diff --git a/src/core/Elsa.Abstractions/Services/IWorkflowDefinitionStore.cs b/src/core/Elsa.Abstractions/Services/IWorkflowDefinitionStore.cs new file mode 100644 index 000000000..69e55c548 --- /dev/null +++ b/src/core/Elsa.Abstractions/Services/IWorkflowDefinitionStore.cs @@ -0,0 +1,19 @@ +using System.Collections.Generic; +using System.Threading; +using System.Threading.Tasks; +using Elsa.Models; +using Elsa.Persistence; + +namespace Elsa.Services +{ + public interface IWorkflowDefinitionManager + { + IWorkflowDefinitionStore Store { get; } + Task SaveAsync(WorkflowDefinition workflowDefinition, CancellationToken cancellationToken = default); + Task DeleteAsync(WorkflowDefinition workflowDefinition, CancellationToken cancellationToken = default); + Task CountAsync(VersionOptions? version = default, CancellationToken cancellationToken = default); + Task> ListAsync(int? skip = default, int? take = default, VersionOptions? version = default, CancellationToken cancellationToken = default); + Task GetAsync(string workflowDefinitionId, VersionOptions version, CancellationToken cancellationToken = default); + Task GetByVersionIdAsync(string workflowDefinitionVersionId, CancellationToken cancellationToken = default); + } +} diff --git a/src/core/Elsa.Core/Extensions/ElsaServiceCollectionExtensions.cs b/src/core/Elsa.Core/Extensions/ElsaServiceCollectionExtensions.cs index 3883ef115..70a3156ee 100644 --- a/src/core/Elsa.Core/Extensions/ElsaServiceCollectionExtensions.cs +++ b/src/core/Elsa.Core/Extensions/ElsaServiceCollectionExtensions.cs @@ -88,6 +88,7 @@ namespace Microsoft.Extensions.DependencyInjection .AddScoped() .AddScoped() .AddScoped() + .AddScoped() .AddSingleton() .AddScoped() .AddScoped() diff --git a/src/core/Elsa.Core/Services/WorkflowDefinitionManager.cs b/src/core/Elsa.Core/Services/WorkflowDefinitionManager.cs new file mode 100644 index 000000000..1b9658f32 --- /dev/null +++ b/src/core/Elsa.Core/Services/WorkflowDefinitionManager.cs @@ -0,0 +1,50 @@ +using System.Collections.Generic; +using System.Threading; +using System.Threading.Tasks; +using Elsa.Models; +using Elsa.Persistence; + +namespace Elsa.Services +{ + public class WorkflowDefinitionManager : IWorkflowDefinitionManager + { + private readonly IIdGenerator _idGenerator; + + public WorkflowDefinitionManager(IWorkflowDefinitionStore store, IIdGenerator idGenerator) + { + _idGenerator = idGenerator; + Store = store; + } + + public IWorkflowDefinitionStore Store { get; } + + public async Task SaveAsync(WorkflowDefinition workflowDefinition, CancellationToken cancellationToken = default) + { + workflowDefinition = Initialize(workflowDefinition); + await Store.SaveAsync(workflowDefinition, cancellationToken); + } + + public Task DeleteAsync(WorkflowDefinition workflowDefinition, CancellationToken cancellationToken = default) => Store.DeleteAsync(workflowDefinition, cancellationToken); + public Task CountAsync(VersionOptions? version = default, CancellationToken cancellationToken = default) => Store.CountAsync(version, cancellationToken); + + public Task> ListAsync(int? skip = default, int? take = default, VersionOptions? version = default, CancellationToken cancellationToken = default) => + Store.ListAsync(skip, take, version, cancellationToken); + + public async Task GetAsync(string workflowDefinitionId, VersionOptions version, CancellationToken cancellationToken = default) => await Store.GetAsync(workflowDefinitionId, version, cancellationToken); + public async Task GetByVersionIdAsync(string workflowDefinitionVersionId, CancellationToken cancellationToken = default) => await Store.GetByVersionIdAsync(workflowDefinitionVersionId, cancellationToken); + + public WorkflowDefinition Initialize(WorkflowDefinition workflowDefinition) + { + if (string.IsNullOrWhiteSpace(workflowDefinition.WorkflowDefinitionId)) + workflowDefinition.WorkflowDefinitionId = _idGenerator.Generate(); + + if (workflowDefinition.Version == 0) + workflowDefinition.Version = 1; + + if (string.IsNullOrWhiteSpace(workflowDefinition.WorkflowDefinitionVersionId)) + workflowDefinition.WorkflowDefinitionVersionId = _idGenerator.Generate(); + + return workflowDefinition; + } + } +} \ No newline at end of file diff --git a/src/core/Elsa.Core/Services/WorkflowPublisher.cs b/src/core/Elsa.Core/Services/WorkflowPublisher.cs index b19a9ef15..00451eecc 100644 --- a/src/core/Elsa.Core/Services/WorkflowPublisher.cs +++ b/src/core/Elsa.Core/Services/WorkflowPublisher.cs @@ -8,13 +8,13 @@ namespace Elsa.Services { public class WorkflowPublisher : IWorkflowPublisher { - private readonly IWorkflowDefinitionStore _workflowDefinitionStore; + private readonly IWorkflowDefinitionManager _workflowDefinitionManager; private readonly IIdGenerator _idGenerator; private readonly ICloner _cloner; - public WorkflowPublisher(IWorkflowDefinitionStore workflowDefinitionStore, IIdGenerator idGenerator, ICloner cloner) + public WorkflowPublisher(IWorkflowDefinitionManager workflowDefinitionManager, IIdGenerator idGenerator, ICloner cloner) { - _workflowDefinitionStore = workflowDefinitionStore; + _workflowDefinitionManager = workflowDefinitionManager; _idGenerator = idGenerator; _cloner = cloner; } @@ -40,7 +40,7 @@ namespace Elsa.Services string workflowDefinitionId, CancellationToken cancellationToken) { - var definition = await _workflowDefinitionStore.GetAsync( + var definition = await _workflowDefinitionManager.GetAsync( workflowDefinitionId, VersionOptions.Latest, cancellationToken); @@ -53,7 +53,7 @@ namespace Elsa.Services public async Task PublishAsync(WorkflowDefinition workflowDefinition, CancellationToken cancellationToken) { - var publishedDefinition = await _workflowDefinitionStore.GetAsync( + var publishedDefinition = await _workflowDefinitionManager.GetAsync( workflowDefinition.WorkflowDefinitionId, VersionOptions.Published, cancellationToken); @@ -62,7 +62,7 @@ namespace Elsa.Services { publishedDefinition.IsPublished = false; publishedDefinition.IsLatest = false; - await _workflowDefinitionStore.SaveAsync(publishedDefinition, cancellationToken); + await _workflowDefinitionManager.SaveAsync(publishedDefinition, cancellationToken); } if (workflowDefinition.IsPublished) @@ -77,14 +77,14 @@ namespace Elsa.Services workflowDefinition.IsLatest = true; workflowDefinition = Initialize(workflowDefinition); - await _workflowDefinitionStore.SaveAsync(workflowDefinition, cancellationToken); + await _workflowDefinitionManager.SaveAsync(workflowDefinition, cancellationToken); return workflowDefinition; } public async Task GetDraftAsync(string workflowDefinitionId, CancellationToken cancellationToken) { - var definition = await _workflowDefinitionStore.GetAsync( + var definition = await _workflowDefinitionManager.GetAsync( workflowDefinitionId, VersionOptions.Latest, cancellationToken); @@ -109,7 +109,7 @@ namespace Elsa.Services { var draft = workflowDefinition; - var latestVersion = await _workflowDefinitionStore.GetAsync( + var latestVersion = await _workflowDefinitionManager.GetAsync( workflowDefinition.WorkflowDefinitionId, VersionOptions.Latest, cancellationToken); @@ -118,14 +118,14 @@ namespace Elsa.Services { latestVersion.IsLatest = false; - await _workflowDefinitionStore.SaveAsync(latestVersion, cancellationToken); + await _workflowDefinitionManager.SaveAsync(latestVersion, cancellationToken); } draft.IsLatest = true; draft.IsPublished = false; draft = Initialize(draft); - await _workflowDefinitionStore.SaveAsync(draft, cancellationToken); + await _workflowDefinitionManager.SaveAsync(draft, cancellationToken); return draft; } diff --git a/src/core/Elsa.Core/WorkflowProviders/DatabaseWorkflowProvider.cs b/src/core/Elsa.Core/WorkflowProviders/DatabaseWorkflowProvider.cs index 3ad5a4859..e99e4f46d 100644 --- a/src/core/Elsa.Core/WorkflowProviders/DatabaseWorkflowProvider.cs +++ b/src/core/Elsa.Core/WorkflowProviders/DatabaseWorkflowProvider.cs @@ -13,18 +13,18 @@ namespace Elsa.WorkflowProviders /// public class DatabaseWorkflowProvider : WorkflowProvider { - private readonly IWorkflowDefinitionStore _workflowDefinitionStore; + private readonly IWorkflowDefinitionManager _workflowDefinitionManager; private readonly IWorkflowBlueprintMaterializer _workflowBlueprintMaterializer; - public DatabaseWorkflowProvider(IWorkflowDefinitionStore workflowDefinitionStore, IWorkflowBlueprintMaterializer workflowBlueprintMaterializer) + public DatabaseWorkflowProvider(IWorkflowDefinitionManager workflowDefinitionManager, IWorkflowBlueprintMaterializer workflowBlueprintMaterializer) { - _workflowDefinitionStore = workflowDefinitionStore; + _workflowDefinitionManager = workflowDefinitionManager; _workflowBlueprintMaterializer = workflowBlueprintMaterializer; } protected override async ValueTask> OnGetWorkflowsAsync(CancellationToken cancellationToken) { - var workflowDefinitions = await _workflowDefinitionStore.ListAsync(cancellationToken: cancellationToken); + var workflowDefinitions = await _workflowDefinitionManager.ListAsync(cancellationToken: cancellationToken); return workflowDefinitions.Select(_workflowBlueprintMaterializer.CreateWorkflowBlueprint); } } diff --git a/src/persistence/Elsa.Persistence.InMemory/InMemoryWorkflowDefinitionStore.cs b/src/persistence/Elsa.Persistence.InMemory/InMemoryWorkflowDefinitionStore.cs index 93546e92c..aa812945d 100644 --- a/src/persistence/Elsa.Persistence.InMemory/InMemoryWorkflowDefinitionStore.cs +++ b/src/persistence/Elsa.Persistence.InMemory/InMemoryWorkflowDefinitionStore.cs @@ -3,19 +3,12 @@ using System.Linq; using System.Threading; using System.Threading.Tasks; using Elsa.Models; -using Elsa.Services; namespace Elsa.Persistence.InMemory { public class InMemoryWorkflowDefinitionStore : IWorkflowDefinitionStore { private static readonly List Definitions = new(); - private readonly IIdGenerator _idGenerator; - - public InMemoryWorkflowDefinitionStore(IIdGenerator idGenerator) - { - _idGenerator = idGenerator; - } public Task CountAsync(VersionOptions? version = null, CancellationToken cancellationToken = default) => Task.FromResult(Definitions.WithVersion(version).Count()); @@ -31,20 +24,6 @@ namespace Elsa.Persistence.InMemory public Task GetByVersionIdAsync(string workflowDefinitionVersionId, CancellationToken cancellationToken = default) => Task.FromResult(Definitions.FirstOrDefault(x => x.WorkflowDefinitionVersionId == workflowDefinitionVersionId)); - public WorkflowDefinition Initialize(WorkflowDefinition workflowDefinition) - { - if (string.IsNullOrWhiteSpace(workflowDefinition.WorkflowDefinitionId)) - workflowDefinition.WorkflowDefinitionId = _idGenerator.Generate(); - - if (workflowDefinition.Version == 0) - workflowDefinition.Version = 1; - - if (string.IsNullOrWhiteSpace(workflowDefinition.WorkflowDefinitionVersionId)) - workflowDefinition.WorkflowDefinitionVersionId = _idGenerator.Generate(); - - return workflowDefinition; - } - public Task> ListAsync(int? skip = null, int? take = null, VersionOptions? version = null, CancellationToken cancellationToken = default) { var query = Definitions.WithVersion(); @@ -57,7 +36,6 @@ namespace Elsa.Persistence.InMemory public Task SaveAsync(WorkflowDefinition workflowDefinition, CancellationToken cancellationToken = default) { - workflowDefinition = Initialize(workflowDefinition); Definitions.Add(workflowDefinition); return Task.CompletedTask; } diff --git a/src/persistence/Elsa.Persistence.MongoDb/MongoDbWorkflowDefinitionStore.cs b/src/persistence/Elsa.Persistence.MongoDb/MongoDbWorkflowDefinitionStore.cs index 9bdc308da..7f391acf2 100644 --- a/src/persistence/Elsa.Persistence.MongoDb/MongoDbWorkflowDefinitionStore.cs +++ b/src/persistence/Elsa.Persistence.MongoDb/MongoDbWorkflowDefinitionStore.cs @@ -12,19 +12,14 @@ namespace Elsa.Persistence.MongoDb public class MongoDbWorkflowDefinitionStore : IWorkflowDefinitionStore { private readonly IMongoCollection _workflowDefinitions; - private readonly IIdGenerator _idGenerator; - - public MongoDbWorkflowDefinitionStore(IMongoCollection workflowDefinitions, IIdGenerator idGenerator) + public MongoDbWorkflowDefinitionStore(IMongoCollection workflowDefinitions) { _workflowDefinitions = workflowDefinitions; - _idGenerator = idGenerator; } - public async Task CountAsync(VersionOptions? version = null, CancellationToken cancellationToken = default) - { - return await ((IMongoQueryable) _workflowDefinitions.AsQueryable().WithVersion(version)).CountAsync(cancellationToken: cancellationToken); - } + public async Task CountAsync(VersionOptions? version = null, CancellationToken cancellationToken = default) => + await ((IMongoQueryable) _workflowDefinitions.AsQueryable().WithVersion(version)).CountAsync(cancellationToken); public async Task DeleteAsync(WorkflowDefinition workflowDefinition, CancellationToken cancellationToken = default) { @@ -32,35 +27,18 @@ namespace Elsa.Persistence.MongoDb await _workflowDefinitions.DeleteOneAsync(filter, cancellationToken); } - public async Task GetAsync(string workflowDefinitionId, VersionOptions versionOptions, CancellationToken cancellationToken = default) - { - return await ((IMongoQueryable) _workflowDefinitions + public async Task GetAsync(string workflowDefinitionId, VersionOptions versionOptions, CancellationToken cancellationToken = default) => + await ((IMongoQueryable) _workflowDefinitions .AsQueryable() .Where(x => x.WorkflowDefinitionId == workflowDefinitionId) - .WithVersion(versionOptions)).FirstOrDefaultAsync(cancellationToken: cancellationToken); - } + .WithVersion(versionOptions)).FirstOrDefaultAsync(cancellationToken); - public async Task GetByVersionIdAsync(string workflowDefinitionVersionId, CancellationToken cancellationToken = default) - { - return await _workflowDefinitions + public async Task GetByVersionIdAsync(string workflowDefinitionVersionId, CancellationToken cancellationToken = default) => + await _workflowDefinitions .AsQueryable() - .Where(x => x.WorkflowDefinitionVersionId == workflowDefinitionVersionId).FirstOrDefaultAsync(cancellationToken: cancellationToken); - } - - public WorkflowDefinition Initialize(WorkflowDefinition workflowDefinition) - { - if (string.IsNullOrWhiteSpace(workflowDefinition.WorkflowDefinitionId)) - workflowDefinition.WorkflowDefinitionId = _idGenerator.Generate(); - - if (workflowDefinition.Version == 0) - workflowDefinition.Version = 1; - - if (string.IsNullOrWhiteSpace(workflowDefinition.WorkflowDefinitionVersionId)) - workflowDefinition.WorkflowDefinitionVersionId = _idGenerator.Generate(); - - return workflowDefinition; - } - + .Where(x => x.WorkflowDefinitionVersionId == workflowDefinitionVersionId) + .FirstOrDefaultAsync(cancellationToken); + public async Task> ListAsync(int? skip = null, int? take = null, VersionOptions? version = null, CancellationToken cancellationToken = default) { var query = _workflowDefinitions diff --git a/src/persistence/Elsa.Persistence.YesSql/YesSqlWorkflowDefinitionStore.cs b/src/persistence/Elsa.Persistence.YesSql/YesSqlWorkflowDefinitionStore.cs index 731189493..30237afb8 100644 --- a/src/persistence/Elsa.Persistence.YesSql/YesSqlWorkflowDefinitionStore.cs +++ b/src/persistence/Elsa.Persistence.YesSql/YesSqlWorkflowDefinitionStore.cs @@ -14,17 +14,14 @@ namespace Elsa.Persistence.YesSql public class YesSqlWorkflowDefinitionStore : IWorkflowDefinitionStore { private readonly ISession _session; - private readonly Elsa.Services.IIdGenerator _idGenerator; - public YesSqlWorkflowDefinitionStore(ISession session, Elsa.Services.IIdGenerator idGenerator) + public YesSqlWorkflowDefinitionStore(ISession session) { _session = session; - _idGenerator = idGenerator; } public Task SaveAsync(WorkflowDefinition workflowDefinition, CancellationToken cancellationToken = default) { - workflowDefinition = Initialize(workflowDefinition); _session.Save(workflowDefinition, CollectionNames.WorkflowDefinitions); return Task.CompletedTask; } @@ -55,33 +52,16 @@ namespace Elsa.Persistence.YesSql public IQuery Query() => _session.Query(CollectionNames.WorkflowDefinitions); public IQuery Query(Expression> predicate) where TIndex : class, IIndex => _session.Query(predicate, CollectionNames.WorkflowDefinitions); - public WorkflowDefinition Initialize(WorkflowDefinition workflowDefinition) - { - if (string.IsNullOrWhiteSpace(workflowDefinition.WorkflowDefinitionId)) - workflowDefinition.WorkflowDefinitionId = _idGenerator.Generate(); - - if (workflowDefinition.Version == 0) - workflowDefinition.Version = 1; - - if (string.IsNullOrWhiteSpace(workflowDefinition.WorkflowDefinitionVersionId)) - workflowDefinition.WorkflowDefinitionVersionId = _idGenerator.Generate(); - - return workflowDefinition; - } - public Task GetAsync(string workflowDefinitionId, VersionOptions version, CancellationToken cancellationToken = default) { var query = Query(x => x.WorkflowDefinitionId == workflowDefinitionId); - return WithVersion(query, version).FirstOrDefaultAsync(); } - public Task GetByVersionIdAsync(string workflowDefinitionVersionId, CancellationToken cancellationToken = default) - { - return Query(x => x.WorkflowDefinitionVersionId == workflowDefinitionVersionId).FirstOrDefaultAsync(); - } + public Task GetByVersionIdAsync(string workflowDefinitionVersionId, CancellationToken cancellationToken = default) => Query(x => x.WorkflowDefinitionVersionId == workflowDefinitionVersionId).FirstOrDefaultAsync(); - private IQuery WithVersion(IQuery query, + private static IQuery WithVersion( + IQuery query, VersionOptions version) { var index = query.With(); diff --git a/src/server/Elsa.Server.Api/Endpoints/WorkflowDefinitions/GetByDefinitionAndVersion.cs b/src/server/Elsa.Server.Api/Endpoints/WorkflowDefinitions/GetByDefinitionAndVersion.cs index 035a3097d..5b57dab44 100644 --- a/src/server/Elsa.Server.Api/Endpoints/WorkflowDefinitions/GetByDefinitionAndVersion.cs +++ b/src/server/Elsa.Server.Api/Endpoints/WorkflowDefinitions/GetByDefinitionAndVersion.cs @@ -20,12 +20,12 @@ namespace Elsa.Server.Api.Endpoints.WorkflowDefinitions [Produces("application/json")] public class GetByDefinitionAndVersion : Controller { - private readonly IWorkflowDefinitionStore _workflowDefinitionStore; + private readonly IWorkflowDefinitionManager _workflowDefinitionManager; private readonly IContentSerializer _serializer; - public GetByDefinitionAndVersion(IWorkflowDefinitionStore workflowDefinitionStore, IContentSerializer serializer) + public GetByDefinitionAndVersion(IWorkflowDefinitionManager workflowDefinitionManager, IContentSerializer serializer) { - _workflowDefinitionStore = workflowDefinitionStore; + _workflowDefinitionManager = workflowDefinitionManager; _serializer = serializer; } @@ -41,7 +41,7 @@ namespace Elsa.Server.Api.Endpoints.WorkflowDefinitions ] public async Task Handle(string workflowDefinitionId, VersionOptions versionOptions, CancellationToken cancellationToken = default) { - var workflowDefinition = await _workflowDefinitionStore.GetAsync(workflowDefinitionId, versionOptions, cancellationToken); + var workflowDefinition = await _workflowDefinitionManager.GetAsync(workflowDefinitionId, versionOptions, cancellationToken); return workflowDefinition == null ? (IActionResult) NotFound() : Json(workflowDefinition, _serializer.GetSettings()); } } diff --git a/src/server/Elsa.Server.Api/Endpoints/WorkflowDefinitions/GetByVersionId.cs b/src/server/Elsa.Server.Api/Endpoints/WorkflowDefinitions/GetByVersionId.cs index 2786710cc..7a246385b 100644 --- a/src/server/Elsa.Server.Api/Endpoints/WorkflowDefinitions/GetByVersionId.cs +++ b/src/server/Elsa.Server.Api/Endpoints/WorkflowDefinitions/GetByVersionId.cs @@ -4,6 +4,7 @@ using Elsa.Models; using Elsa.Persistence; using Elsa.Serialization; using Elsa.Server.Api.Swagger.Examples; +using Elsa.Services; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Swashbuckle.AspNetCore.Annotations; @@ -17,12 +18,12 @@ namespace Elsa.Server.Api.Endpoints.WorkflowDefinitions [Produces("application/json")] public class GetByVersionId : Controller { - private readonly IWorkflowDefinitionStore _workflowDefinitionStore; + private readonly IWorkflowDefinitionManager _workflowDefinitionManager; private readonly IContentSerializer _serializer; - public GetByVersionId(IWorkflowDefinitionStore workflowDefinitionStore, IContentSerializer serializer) + public GetByVersionId(IWorkflowDefinitionManager workflowDefinitionManager, IContentSerializer serializer) { - _workflowDefinitionStore = workflowDefinitionStore; + _workflowDefinitionManager = workflowDefinitionManager; _serializer = serializer; } @@ -38,7 +39,7 @@ namespace Elsa.Server.Api.Endpoints.WorkflowDefinitions ] public async Task Handle(string workflowDefinitionVersionId, CancellationToken cancellationToken = default) { - var workflowDefinition = await _workflowDefinitionStore.GetByVersionIdAsync(workflowDefinitionVersionId, cancellationToken); + var workflowDefinition = await _workflowDefinitionManager.GetByVersionIdAsync(workflowDefinitionVersionId, cancellationToken); return workflowDefinition == null ? (IActionResult) NotFound() : Json(workflowDefinition, _serializer.GetSettings()); } } diff --git a/src/server/Elsa.Server.Api/Endpoints/WorkflowDefinitions/List.cs b/src/server/Elsa.Server.Api/Endpoints/WorkflowDefinitions/List.cs index 4b5672e55..c276cc1eb 100644 --- a/src/server/Elsa.Server.Api/Endpoints/WorkflowDefinitions/List.cs +++ b/src/server/Elsa.Server.Api/Endpoints/WorkflowDefinitions/List.cs @@ -6,6 +6,7 @@ using Elsa.Persistence; using Elsa.Serialization; using Elsa.Server.Api.Models; using Elsa.Server.Api.Swagger.Examples; +using Elsa.Services; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Swashbuckle.AspNetCore.Annotations; @@ -19,12 +20,12 @@ namespace Elsa.Server.Api.Endpoints.WorkflowDefinitions [Produces("application/json")] public class List : Controller { - private readonly IWorkflowDefinitionStore _workflowDefinitionStore; + private readonly IWorkflowDefinitionManager _workflowDefinitionManager; private readonly IContentSerializer _serializer; - public List(IWorkflowDefinitionStore workflowDefinitionStore, IContentSerializer serializer) + public List(IWorkflowDefinitionManager workflowDefinitionManager, IContentSerializer serializer) { - _workflowDefinitionStore = workflowDefinitionStore; + _workflowDefinitionManager = workflowDefinitionManager; _serializer = serializer; } @@ -40,9 +41,9 @@ namespace Elsa.Server.Api.Endpoints.WorkflowDefinitions public async Task>> Handle(int? page = default, int? pageSize = default, VersionOptions? version = default, CancellationToken cancellationToken = default) { version ??= VersionOptions.Latest; - var totalCount = await _workflowDefinitionStore.CountAsync(version, cancellationToken); + var totalCount = await _workflowDefinitionManager.CountAsync(version, cancellationToken); var skip = page * pageSize; - var items = await _workflowDefinitionStore.ListAsync(skip, pageSize, version, cancellationToken); + var items = await _workflowDefinitionManager.ListAsync(skip, pageSize, version, cancellationToken); var pagedList = new PagedList(items.ToList(), page, pageSize, totalCount); return Json(pagedList, _serializer.GetSettings());