Add workflow context class type constraint

This commit is contained in:
Sipke Schoorstra 2021-03-22 21:24:30 +01:00
parent 3b185d31e9
commit 48ff06d26e

View file

@ -13,11 +13,11 @@ namespace Elsa.Services
public virtual ValueTask<object?> LoadAsync(LoadWorkflowContext context, CancellationToken cancellationToken = default) => new();
}
public abstract class WorkflowContextRefresher<T> : ILoadWorkflowContext, ISaveWorkflowContext
public abstract class WorkflowContextRefresher<T> : ILoadWorkflowContext, ISaveWorkflowContext where T:class
{
public virtual IEnumerable<Type> SupportedTypes => new[] { typeof(T) };
ValueTask<string?> ISaveWorkflowContext.SaveAsync(SaveWorkflowContext context, CancellationToken cancellationToken) => SaveAsync(new SaveWorkflowContext<T>(context), cancellationToken);
async ValueTask<object?> ILoadWorkflowContext.LoadAsync(LoadWorkflowContext context, CancellationToken cancellationToken) => (T)await LoadAsync(context, cancellationToken);
async ValueTask<object?> ILoadWorkflowContext.LoadAsync(LoadWorkflowContext context, CancellationToken cancellationToken) => await LoadAsync(context, cancellationToken);
public virtual ValueTask<string?> SaveAsync(SaveWorkflowContext<T> context, CancellationToken cancellationToken = default) => new();
public virtual ValueTask<T?> LoadAsync(LoadWorkflowContext context, CancellationToken cancellationToken) => new();
}