using Caspian.WorkflowFramework.Models; namespace Caspian.WorkflowFramework.Contracts { public interface IWorkflowService { /// /// Create and executes a new workflow instance. /// /// /// A new object. /// Create a new workflow instance and executes it and waits for it to complete or reach a suspend point. Task> CreateAndExecuteAsync(CreateAndExecuteWorkflowModel input); /// /// Create and get a last workflow running instance. /// /// /// Task> CreateOrGetInstanceAsync(CreateAndExecuteWorkflowModel input); /// /// Publishes the specified event. /// /// /// A new object. Task> PublishEventAsync(PublishEventModel input); /// /// Inquiry last state of workflow instance. /// /// /// A new object. Task> InquiryStateAsync(InquiryStateModel input); } }