using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using VberZero.Workflow.DesignInfo; using VberZero.Workflow.StepBodies; namespace VberZero.Workflow { public interface IVberWorkflowManager { public IVberPersistenceProvider PersistenceProvider { get; } public IQueryable WorkflowDefinitions { get; } Task TerminateWorkflow(string workflowId); IEnumerable GetAllStepBodies(); Task PublishEventAsync(string eventName, string eventKey, object eventData); Task CreateAsync(WorkflowDefinitionInfo entity); Task UpdateAsync(WorkflowDefinitionInfo entity); Task DeleteAsync(string id, int version); Task DeleteAsync(string id); Task StartWorkflow(string id, int version, Dictionary inputs, string reference = null); } }