Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions src/WorkflowCore/Interface/IWorkflowController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@ namespace WorkflowCore.Interface
{
public interface IWorkflowController
{
Task<string> StartWorkflow(string workflowId, object data = null);
Task<string> StartWorkflow(string workflowId, int? version, object data = null);
Task<string> StartWorkflow<TData>(string workflowId, TData data = null) where TData : class;
Task<string> StartWorkflow<TData>(string workflowId, int? version, TData data = null) where TData : class;
Task<string> StartWorkflow(string workflowId, object data = null, string reference=null);
Task<string> StartWorkflow(string workflowId, int? version, object data = null, string reference=null);
Task<string> StartWorkflow<TData>(string workflowId, TData data = null, string reference=null) where TData : class;
Task<string> StartWorkflow<TData>(string workflowId, int? version, TData data = null, string reference=null) where TData : class;

Task PublishEvent(string eventName, string eventKey, object eventData, DateTime? effectiveDate = null);
void RegisterWorkflow<TWorkflow>() where TWorkflow : IWorkflow, new();
Expand Down
17 changes: 9 additions & 8 deletions src/WorkflowCore/Services/WorkflowController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -29,23 +29,23 @@ public WorkflowController(IPersistenceProvider persistenceStore, IDistributedLoc
_logger = loggerFactory.CreateLogger<WorkflowController>();
}

public Task<string> StartWorkflow(string workflowId, object data = null)
public Task<string> StartWorkflow(string workflowId, object data = null, string reference=null)
{
return StartWorkflow(workflowId, null, data);
return StartWorkflow(workflowId, null, data, reference);
}

public Task<string> StartWorkflow(string workflowId, int? version, object data = null)
public Task<string> StartWorkflow(string workflowId, int? version, object data = null, string reference=null)
{
return StartWorkflow<object>(workflowId, version, data);
return StartWorkflow<object>(workflowId, version, data, reference);
}

public Task<string> StartWorkflow<TData>(string workflowId, TData data = null)
public Task<string> StartWorkflow<TData>(string workflowId, TData data = null, string reference=null)
where TData : class
{
return StartWorkflow<TData>(workflowId, null, data);
return StartWorkflow<TData>(workflowId, null, data, reference);
}

public async Task<string> StartWorkflow<TData>(string workflowId, int? version, TData data = null)
public async Task<string> StartWorkflow<TData>(string workflowId, int? version, TData data = null, string reference=null)
where TData : class
{

Expand All @@ -63,7 +63,8 @@ public async Task<string> StartWorkflow<TData>(string workflowId, int? version,
Description = def.Description,
NextExecution = 0,
CreateTime = DateTime.Now.ToUniversalTime(),
Status = WorkflowStatus.Runnable
Status = WorkflowStatus.Runnable,
Reference = reference
};

if ((def.DataType != null) && (data == null))
Expand Down
16 changes: 8 additions & 8 deletions src/WorkflowCore/Services/WorkflowHost.cs
Original file line number Diff line number Diff line change
Expand Up @@ -43,27 +43,27 @@ public WorkflowHost(IPersistenceProvider persistenceStore, IQueueProvider queueP
persistenceStore.EnsureStoreExists();
}

public Task<string> StartWorkflow(string workflowId, object data = null)
public Task<string> StartWorkflow(string workflowId, object data = null, string reference=null)
{
return _workflowController.StartWorkflow(workflowId, data);
return _workflowController.StartWorkflow(workflowId, data, reference);
}

public Task<string> StartWorkflow(string workflowId, int? version, object data = null)
public Task<string> StartWorkflow(string workflowId, int? version, object data = null, string reference=null)
{
return _workflowController.StartWorkflow<object>(workflowId, version, data);
return _workflowController.StartWorkflow<object>(workflowId, version, data, reference);
}

public Task<string> StartWorkflow<TData>(string workflowId, TData data = null)
public Task<string> StartWorkflow<TData>(string workflowId, TData data = null, string reference=null)
where TData : class
{
return _workflowController.StartWorkflow<TData>(workflowId, null, data);
return _workflowController.StartWorkflow<TData>(workflowId, null, data, reference);
}


public Task<string> StartWorkflow<TData>(string workflowId, int? version, TData data = null)
public Task<string> StartWorkflow<TData>(string workflowId, int? version, TData data = null, string reference=null)
where TData : class
{
return _workflowController.StartWorkflow(workflowId, version, data);
return _workflowController.StartWorkflow(workflowId, version, data, reference);
}

public Task PublishEvent(string eventName, string eventKey, object eventData, DateTime? effectiveDate = null)
Expand Down
6 changes: 3 additions & 3 deletions src/WorkflowCore/WorkflowCore.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,9 @@
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
<Description>Workflow Core is a light weight workflow engine targeting .NET Standard.</Description>
<Version>1.6.4</Version>
<AssemblyVersion>1.6.4.0</AssemblyVersion>
<FileVersion>1.6.4.0</FileVersion>
<Version>1.6.5</Version>
<AssemblyVersion>1.6.5.0</AssemblyVersion>
<FileVersion>1.6.5.0</FileVersion>
<PackageReleaseNotes></PackageReleaseNotes>
<PackageIconUrl>https://github.com/danielgerlag/workflow-core/raw/master/src/logo.png</PackageIconUrl>
</PropertyGroup>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ public async Task<IActionResult> Get(string id)

[HttpPost("{id}")]
[HttpPost("{id}/{version}")]
public async Task<IActionResult> Post(string id, int? version, [FromBody]JObject data)
public async Task<IActionResult> Post(string id, int? version, string reference, [FromBody]JObject data)
{
string workflowId = null;
var def = _registry.GetDefinition(id, version);
Expand All @@ -55,11 +55,11 @@ public async Task<IActionResult> Post(string id, int? version, [FromBody]JObject
{
var dataStr = JsonConvert.SerializeObject(data);
var dataObj = JsonConvert.DeserializeObject(dataStr, def.DataType);
workflowId = await _workflowHost.StartWorkflow(id, version, dataObj);
workflowId = await _workflowHost.StartWorkflow(id, version, dataObj, reference);
}
else
{
workflowId = await _workflowHost.StartWorkflow(id, version, null);
workflowId = await _workflowHost.StartWorkflow(id, version, null, reference);
}

return Ok(workflowId);
Expand Down
2 changes: 1 addition & 1 deletion src/samples/WorkflowCore.Sample01/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ public static void Main(string[] args)
host.RegisterWorkflow<HelloWorldWorkflow>();
host.Start();

host.StartWorkflow("HelloWorld", 1, null);
host.StartWorkflow("HelloWorld");

Console.ReadLine();
host.Stop();
Expand Down
2 changes: 1 addition & 1 deletion src/samples/WorkflowCore.Sample02/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ public static void Main(string[] args)
host.RegisterWorkflow<SimpleDecisionWorkflow>();
host.Start();

host.StartWorkflow("Simple Decision Workflow", 1, null);
host.StartWorkflow("Simple Decision Workflow");

Console.ReadLine();
host.Stop();
Expand Down
2 changes: 1 addition & 1 deletion src/samples/WorkflowCore.Sample05/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ public static void Main(string[] args)
host.RegisterWorkflow<DeferSampleWorkflow>();
host.Start();

host.StartWorkflow("DeferSampleWorkflow", 1, null);
host.StartWorkflow("DeferSampleWorkflow", 1, null, null);

Console.ReadLine();
host.Stop();
Expand Down
2 changes: 1 addition & 1 deletion src/samples/WorkflowCore.Sample06/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ public static void Main(string[] args)
host.RegisterWorkflow<MultipleOutcomeWorkflow>();
host.Start();

host.StartWorkflow("MultipleOutcomeWorkflow", 1, null);
host.StartWorkflow("MultipleOutcomeWorkflow", 1, null, null);

Console.ReadLine();
host.Stop();
Expand Down
2 changes: 1 addition & 1 deletion src/samples/WorkflowCore.Sample15/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ public static void Main(string[] args)
host.RegisterWorkflow<HelloWorldWorkflow>();
host.Start();

host.StartWorkflow("HelloWorld", 1, null);
host.StartWorkflow("HelloWorld", 1, null, null);

Console.ReadLine();
host.Stop();
Expand Down
7 changes: 5 additions & 2 deletions test/WorkflowCore.UnitTests/BasePersistenceFixture.cs
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,8 @@ public void GetWorkflowInstance_should_retrieve_workflow()
Status = WorkflowStatus.Runnable,
NextExecution = 0,
Version = 1,
WorkflowDefinitionId = "My Workflow"
WorkflowDefinitionId = "My Workflow",
Reference = "My Reference"
};
workflow.ExecutionPointers.Add(new ExecutionPointer()
{
Expand All @@ -76,7 +77,8 @@ public void PersistWorkflow()
NextExecution = 0,
Version = 1,
WorkflowDefinitionId = "My Workflow",
CreateTime = new DateTime(2000, 1, 1).ToUniversalTime()
CreateTime = new DateTime(2000, 1, 1).ToUniversalTime(),
Reference = "My Reference"
};
oldWorkflow.ExecutionPointers.Add(new ExecutionPointer()
{
Expand All @@ -87,6 +89,7 @@ public void PersistWorkflow()
var workflowId = Subject.CreateNewWorkflow(oldWorkflow).Result;
var newWorkflow = Utils.DeepCopy(oldWorkflow);
newWorkflow.Data = oldWorkflow.Data;
newWorkflow.Reference = oldWorkflow.Reference;
newWorkflow.NextExecution = 7;
newWorkflow.ExecutionPointers.Add(new ExecutionPointer() { Id = Guid.NewGuid().ToString(), Active = true, StepId = 1 });

Expand Down