Interface ISchemePersistenceProvider<TSchemeMedium>
OptimaJet.Workflow.Core.Persistence.ISchemePersistenceProvider<TSchemeMedium>
Defines asynchronous persistence operations for unparsed source schemes, stored built scheme versions, Scheme Inlining relationships, and scheme tags.
Namespace: OptimaJet.Workflow.Core.Persistence
public interface ISchemePersistenceProvider<TSchemeMedium> where TSchemeMedium : classType Hierarchy
- ISchemePersistenceProvider<TSchemeMedium> Current type
Methods
Task<SchemeDefinition<TSchemeMedium>> GetProcessSchemeByProcessIdAsync(Guid processId) #Gets the stored built scheme version assigned to a process instance.
Parameters
Name
Type
Description
processIdGuidThe identifier of the process instance whose assigned scheme is retrieved.
Returns
Type
Description
Task<SchemeDefinition<TSchemeMedium>>The SchemeDefinition<T> assigned to the process instance.
Exceptions
Type
Description
ProcessNotFoundExceptionThrown when no process instance exists with
processId.SchemeNotFoundExceptionThrown when the process instance has no assigned scheme or its stored built scheme version cannot be found.
Task<SchemeDefinition<TSchemeMedium>> GetProcessSchemeBySchemeIdAsync(Guid schemeId) #Gets a stored built scheme version by its scheme ID.
Parameters
Name
Type
Description
schemeIdGuidThe scheme ID of the stored built scheme version.
Returns
Type
Description
Task<SchemeDefinition<TSchemeMedium>>The requested SchemeDefinition<T>.
Exceptions
Type
Description
SchemeNotFoundExceptionThrown when no stored built scheme version exists with
schemeId.Task<SchemeDefinition<TSchemeMedium>> GetProcessSchemeWithParametersAsync(string schemeCode, Guid? rootSchemeId, bool ignoreObsolete, string? tenantId = null) #Gets a stored built scheme version that matches a scheme code, root scheme ID, obsolete-version filter, and tenant scope.
Parameters
Name
Type
Description
schemeCodeStringThe code of the stored built scheme version to retrieve.
rootSchemeIdNullable<Guid>The root scheme ID for a subprocess scheme, or null to select versions without a root scheme.
ignoreObsoleteBooleantenantIdStringThe tenant identifier that defines the exact search scope, or null to search shared schemes.
Returns
Type
Description
Task<SchemeDefinition<TSchemeMedium>>The matching SchemeDefinition<T>.
Exceptions
Type
Description
SchemeNotFoundExceptionThrown when no stored built scheme version matches the supplied criteria.
Task<TSchemeMedium> GetSchemeAsync(string code, string? tenantId = null) #Gets the unparsed source scheme identified by a scheme code.
Parameters
Name
Type
Description
codeStringThe code of the source scheme to retrieve.
tenantIdStringThe tenant identifier used to prefer a tenant-specific scheme over a shared scheme, or null to search only shared schemes.
Returns
Type
Description
Task<TSchemeMedium>The unparsed source scheme represented by
TSchemeMedium.Exceptions
Type
Description
SchemeNotFoundExceptionThrown when no source scheme with
code is available in the requested scope.Task<SchemeDefinition<TSchemeMedium>> SaveSchemeAsync(SchemeDefinition<TSchemeMedium> scheme) #Stores a built scheme version if no matching version is already persisted.
Parameters
Name
Type
Description
schemeSchemeDefinition<TSchemeMedium>The SchemeDefinition<T> containing the built scheme and stored-version metadata to persist.
Returns
Type
Description
Task<SchemeDefinition<TSchemeMedium>>The stored SchemeDefinition<T>, either newly inserted or an existing matching version.
Task UpsertSchemeAsync(SchemeDefinition<TSchemeMedium> scheme) #Inserts or updates a stored built scheme version.
Parameters
Name
Type
Description
schemeSchemeDefinition<TSchemeMedium>The SchemeDefinition<T> containing the built scheme and stored-version metadata to insert or update.
Returns
Type
Description
TaskA Task that represents the asynchronous operation.
Task SetSchemeIsObsoleteAsync(string schemeCode, string? tenantId = null) #Marks stored built scheme versions associated with a scheme code as obsolete.
Task SaveSchemeAsync(string schemeCode, bool canBeInlined, List<string> inlinedSchemes, string scheme, List<string> tags, string? tenantId = null) #Saves an unparsed source scheme together with its Scheme Inlining relationships and tags.
Parameters
Name
Type
Description
schemeCodeStringThe code under which the source scheme is stored.
inlinedSchemesList<String>The codes of the inlinable schemes referenced by this scheme.
schemeStringThe serialized unparsed source scheme.
tagsList<String>The scheme tags to store.
tenantIdStringThe tenant identifier that defines the exact storage scope, or null for a shared scheme.
Returns
Type
Description
TaskA Task that represents the asynchronous operation.
Task<List<string>> GetInlinedSchemeCodesAsync(string? tenantId = null) #Gets the distinct codes of schemes available for use as inlinable schemes.
Parameters
Name
Type
Description
tenantIdStringThe tenant identifier. When specified, the result includes shared schemes and schemes in that tenant scope; when null, the result includes only shared schemes.
Returns
Type
Description
Task<String>The distinct inlinable scheme codes.
Task<List<string>> SearchSchemesByTagsAsync(params string[] tags) #Gets the codes of shared schemes that match at least one specified tag.
Parameters
Name
Type
Description
Returns
Type
Description
Task<String>The matching shared scheme codes.
Task<List<string>> SearchSchemesByTagsAsync(IEnumerable<string>? tags) #Gets the codes of shared schemes that match at least one specified tag.
Parameters
Name
Type
Description
tagsIEnumerable<String>The tags to match, or null to return all shared scheme codes. An empty collection also returns all shared scheme codes.
Returns
Type
Description
Task<String>The matching shared scheme codes.
Task<List<string>> SearchSchemesByTagsAsync(string? tenantId, IEnumerable<string>? tags) #Gets the codes of schemes in an exact tenant scope that match at least one specified tag.
Parameters
Name
Type
Description
tenantIdStringThe tenant identifier that defines the exact search scope, or null to search shared schemes.
tagsIEnumerable<String>The tags to match, or null to return every scheme code in the selected scope. An empty collection also returns every scheme code in that scope.
Returns
Type
Description
Task<String>The matching scheme codes in the selected scope.
Task<List<string>> SearchSchemesByTagsInTenantAsync(string tenantId, params string[] tags) #Gets the codes of schemes in a specified tenant that match at least one specified tag.
Parameters
Name
Type
Description
tenantIdStringThe tenant identifier that defines the exact search scope.
tagsString[]The tags to match. If the array is null or empty, every scheme code in the tenant scope is returned.
Returns
Type
Description
Task<String>The matching scheme codes in the specified tenant.
Task AddSchemeTagsAsync(string schemeCode, params string[] tags) #Adds tags to a source scheme in the shared scope.
Parameters
Name
Type
Description
schemeCodeStringThe code of the shared source scheme.
tagsString[]The scheme tags to add.
Returns
Type
Description
TaskA Task that represents the asynchronous operation.
Exceptions
Type
Description
SchemeNotFoundExceptionThrown when the shared source scheme identified by
schemeCode does not exist.Task AddSchemeTagsAsync(string schemeCode, IEnumerable<string> tags) #Adds tags to a source scheme in the shared scope.
Parameters
Name
Type
Description
schemeCodeStringThe code of the shared source scheme.
tagsIEnumerable<String>The scheme tags to add.
Returns
Type
Description
TaskA Task that represents the asynchronous operation.
Exceptions
Type
Description
SchemeNotFoundExceptionThrown when the shared source scheme identified by
schemeCode does not exist.Task AddSchemeTagsAsync(string schemeCode, string? tenantId, IEnumerable<string> tags) #Adds tags to a source scheme in an exact tenant scope.
Parameters
Name
Type
Description
schemeCodeStringThe source scheme code.
tagsIEnumerable<String>The scheme tags to add.
Returns
Type
Description
TaskA Task that represents the asynchronous operation.
Exceptions
Type
Description
SchemeNotFoundExceptionThrown when no source scheme with
schemeCode exists in the scope selected by tenantId.Task AddSchemeTagsInTenantAsync(string schemeCode, string tenantId, params string[] tags) #Adds tags to a source scheme in a specified tenant.
Parameters
Name
Type
Description
schemeCodeStringThe source scheme code.
tenantIdStringThe tenant identifier that defines the exact scope.
tagsString[]The scheme tags to add.
Returns
Type
Description
TaskA Task that represents the asynchronous operation.
Exceptions
Type
Description
SchemeNotFoundExceptionThrown when no source scheme with
schemeCode exists in the scope selected by tenantId.Task RemoveSchemeTagsAsync(string schemeCode, params string[] tags) #Removes tags from a source scheme in the shared scope.
Parameters
Name
Type
Description
schemeCodeStringThe code of the shared source scheme.
tagsString[]The scheme tags to remove.
Returns
Type
Description
TaskA Task that represents the asynchronous operation.
Exceptions
Type
Description
SchemeNotFoundExceptionThrown when the shared source scheme identified by
schemeCode does not exist.Task RemoveSchemeTagsAsync(string schemeCode, IEnumerable<string> tags) #Removes tags from a source scheme in the shared scope.
Parameters
Name
Type
Description
schemeCodeStringThe code of the shared source scheme.
tagsIEnumerable<String>The scheme tags to remove.
Returns
Type
Description
TaskA Task that represents the asynchronous operation.
Exceptions
Type
Description
SchemeNotFoundExceptionThrown when the shared source scheme identified by
schemeCode does not exist.Task RemoveSchemeTagsAsync(string schemeCode, string? tenantId, IEnumerable<string> tags) #Removes tags from a source scheme in an exact tenant scope.
Parameters
Name
Type
Description
schemeCodeStringThe source scheme code.
tagsIEnumerable<String>The scheme tags to remove.
Returns
Type
Description
TaskA Task that represents the asynchronous operation.
Exceptions
Type
Description
SchemeNotFoundExceptionThrown when no source scheme with
schemeCode exists in the scope selected by tenantId.Task RemoveSchemeTagsInTenantAsync(string schemeCode, string tenantId, params string[] tags) #Removes tags from a source scheme in a specified tenant.
Parameters
Name
Type
Description
schemeCodeStringThe source scheme code.
tenantIdStringThe tenant identifier that defines the exact scope.
tagsString[]The scheme tags to remove.
Returns
Type
Description
TaskA Task that represents the asynchronous operation.
Exceptions
Type
Description
SchemeNotFoundExceptionThrown when no source scheme with
schemeCode exists in the scope selected by tenantId.Task SetSchemeTagsAsync(string schemeCode, IEnumerable<string> tags) #Replaces all tags on a source scheme in the shared scope.
Parameters
Name
Type
Description
schemeCodeStringThe code of the shared source scheme.
tagsIEnumerable<String>The replacement scheme tags; an empty collection removes all tags.
Returns
Type
Description
TaskA Task that represents the asynchronous operation.
Exceptions
Type
Description
SchemeNotFoundExceptionThrown when the shared source scheme identified by
schemeCode does not exist.Task SetSchemeTagsAsync(string schemeCode, string? tenantId, IEnumerable<string> tags) #Replaces all tags on a source scheme in an exact tenant scope.
Parameters
Name
Type
Description
schemeCodeStringThe source scheme code.
tagsIEnumerable<String>The replacement scheme tags; an empty collection removes all tags.
Returns
Type
Description
TaskA Task that represents the asynchronous operation.
Exceptions
Type
Description
SchemeNotFoundExceptionThrown when no source scheme with
schemeCode exists in the scope selected by tenantId.Task SetSchemeTagsAsync(string schemeCode, params string[] tags) #Replaces all tags on a source scheme in the shared scope.
Parameters
Name
Type
Description
schemeCodeStringThe code of the shared source scheme.
tagsString[]The replacement scheme tags; an empty array removes all tags.
Returns
Type
Description
TaskA Task that represents the asynchronous operation.
Exceptions
Type
Description
SchemeNotFoundExceptionThrown when the shared source scheme identified by
schemeCode does not exist.Task SetSchemeTagsInTenantAsync(string schemeCode, string tenantId, params string[] tags) #Replaces all tags on a source scheme in a specified tenant.
Parameters
Name
Type
Description
schemeCodeStringThe source scheme code.
tenantIdStringThe tenant identifier that defines the exact scope.
tagsString[]The replacement scheme tags; an empty array removes all tags.
Returns
Type
Description
TaskA Task that represents the asynchronous operation.
Exceptions
Type
Description
SchemeNotFoundExceptionThrown when no source scheme with
schemeCode exists in the scope selected by tenantId.