public static IWorQLessWorkflow Create(Type sourceType, Type returnType, IWorkflowContainer workflowContainer) { var workflow = (IWorQLessWorkflow)Reflection .CreateWorkflow(sourceType, workflowContainer.Name, new Type[] { sourceType, returnType }, workflowContainer.Args); workflow.WorkflowContainer = workflowContainer; return(workflow); }
public object Execute(IWorkflowContainer workflow, dynamic data) { dynamic lastResult = data; if (workflow.Operand != WorkflowOperand.UseLastResult || !string.IsNullOrEmpty(workflow.Entity)) { var entityType = Tables[workflow.Entity.ToLower()]; var setMethod = GetTableMethod.MakeGenericMethod(entityType); data = setMethod.Invoke(this, null); } var dataType = data.GetType(); if (dataType.IsGenericType) { dataType = dataType.GenericTypeArguments[0]; } data = workflow.Execute(dataType, data, lastResult); return(data); }