Exemple #1
0
        /// <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);
        }
Exemple #2
0
        /// <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);
        }