private void LaunchWorkflow(WorkflowTypeCache workflowType, FinancialTransaction transaction)
{
if (workflowType != null && (workflowType.IsActive ?? true))
{
using (var rockContext = new RockContext())
{
string workflowName = transaction.TransactionCode;
if (transaction.AuthorizedPersonAliasId != null)
{
var person = new PersonAliasService(rockContext).GetPerson(transaction.AuthorizedPersonAliasId.Value);
if (person != null)
{
workflowName = person.FullName;
}
}
var workflowService = new WorkflowService(rockContext);
var workflow = Rock.Model.Workflow.Activate(workflowType, workflowName, rockContext);
if (workflow != null)
{
List <string> workflowErrors;
workflowService.Process(workflow, transaction, out workflowErrors);
}
}
}
}