/// <summary> /// Activates the specified <see cref="Rock.Model.WorkflowType" />. /// </summary> /// <param name="workflowType">The <see cref="Rock.Model.WorkflowType" /> being activated.</param> /// <param name="name">A <see cref="System.String" /> representing the name of the <see cref="Rock.Model.Workflow" /> instance.</param> /// <param name="rockContext">The rock context.</param> /// <returns> /// The <see cref="Rock.Model.Workflow" /> instance. /// </returns> public static Workflow Activate(WorkflowType workflowType, string name, RockContext rockContext) { var workflow = new Workflow(); workflow.WorkflowType = workflowType; workflow.WorkflowTypeId = workflowType.Id; if (!string.IsNullOrWhiteSpace(name)) { workflow.Name = name; } else { workflow.Name = workflowType.Name; } workflow.Status = "Active"; workflow.IsProcessing = false; workflow.ActivatedDateTime = RockDateTime.Now; workflow.LoadAttributes(rockContext); workflow.AddLogEntry("Activated"); foreach (var activityType in workflowType.ActivityTypes.OrderBy(a => a.Order)) { if (activityType.IsActivatedWithWorkflow) { WorkflowActivity.Activate(activityType, workflow, rockContext); } } return(workflow); }
/// <summary> /// Activates the specified workflow type. /// </summary> /// <param name="workflowType">Type of the workflow.</param> /// <param name="name">The name.</param> /// <returns></returns> internal static Workflow Activate(WorkflowType workflowType, string name) { var workflow = new Workflow(); workflow.WorkflowTypeId = workflowType.Id; workflow.Name = name; workflow.Status = "Activated"; workflow.IsProcessing = false; workflow.ActivatedDateTime = DateTime.Now; workflow.AddSystemLogEntry("Activated"); foreach (var activityType in workflowType.ActivityTypes.OrderBy(a => a.Order)) { if (activityType.IsActivatedWithWorkflow) { workflow.Activities.Add(WorkflowActivity.Activate(activityType, workflow)); } } return(workflow); }