本文整理汇总了C#中Workflow.SaveAttributeValues方法的典型用法代码示例。如果您正苦于以下问题:C# Workflow.SaveAttributeValues方法的具体用法?C# Workflow.SaveAttributeValues怎么用?C# Workflow.SaveAttributeValues使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Workflow
的用法示例。
在下文中一共展示了Workflow.SaveAttributeValues方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Process
/// <summary>
/// Processes the specified <see cref="Rock.Model.Workflow" />
/// </summary>
/// <param name="workflow">The <see cref="Rock.Model.Workflow" /> instance to process.</param>
/// <param name="errorMessages">A <see cref="System.Collections.Generic.List{String}" /> that contains any error messages that were returned while processing the <see cref="Rock.Model.Workflow" />.</param>
public void Process( Workflow workflow, out List<string> errorMessages )
{
workflow.IsProcessing = true;
this.Context.SaveChanges();
var rockContext = (RockContext)this.Context;
workflow.LoadAttributes( rockContext );
workflow.Process( rockContext, out errorMessages );
if ( workflow.IsPersisted )
{
this.Context.WrapTransaction( () =>
{
this.Context.SaveChanges();
workflow.SaveAttributeValues( rockContext );
foreach ( var activity in workflow.Activities )
{
activity.SaveAttributeValues( rockContext );
}
} );
workflow.IsProcessing = false;
this.Context.SaveChanges();
}
}
示例2: HydrateObjects
private bool HydrateObjects()
{
LoadWorkflowType();
if ( _workflowType == null )
{
ShowMessage( NotificationBoxType.Danger, "Configuration Error", "Workflow type was not configured or specified correctly." );
return false;
}
if ( !_workflowType.IsAuthorized( Authorization.VIEW, CurrentPerson ) )
{
ShowMessage( NotificationBoxType.Warning, "Sorry", "You are not authorized to view this type of workflow." );
return false;
}
// If operating against an existing workflow, get the workflow and load attributes
if ( !WorkflowId.HasValue )
{
WorkflowId = PageParameter( "WorkflowId" ).AsIntegerOrNull();
if ( !WorkflowId.HasValue )
{
Guid guid = PageParameter( "WorkflowGuid" ).AsGuid();
if ( !guid.IsEmpty() )
{
_workflow = _workflowService.Queryable()
.Where( w => w.Guid.Equals( guid ) && w.WorkflowTypeId == _workflowType.Id )
.FirstOrDefault();
if ( _workflow != null )
{
WorkflowId = _workflow.Id;
}
}
}
}
if ( WorkflowId.HasValue )
{
if ( _workflow == null )
{
_workflow = _workflowService.Queryable()
.Where( w => w.Id == WorkflowId.Value && w.WorkflowTypeId == _workflowType.Id )
.FirstOrDefault();
}
if ( _workflow != null )
{
_workflow.LoadAttributes();
foreach ( var activity in _workflow.Activities )
{
activity.LoadAttributes();
}
}
}
// If an existing workflow was not specified, activate a new instance of workflow and start processing
if ( _workflow == null )
{
_workflow = Rock.Model.Workflow.Activate( _workflowType, "Workflow" );
List<string> errorMessages;
if ( _workflow.Process( _rockContext, out errorMessages ) )
{
// If the workflow type is persisted, save the workflow
if ( _workflow.IsPersisted || _workflowType.IsPersisted )
{
_workflowService.Add( _workflow );
RockTransactionScope.WrapTransaction( () =>
{
_rockContext.SaveChanges();
_workflow.SaveAttributeValues( _rockContext );
foreach ( var activity in _workflow.Activities )
{
activity.SaveAttributeValues( _rockContext );
}
} );
WorkflowId = _workflow.Id;
}
}
}
if ( _workflow == null )
{
ShowMessage( NotificationBoxType.Danger, "Workflow Activation Error", "Workflow could not be activated." );
return false;
}
if ( _workflow.IsActive )
{
if ( ActionTypeId.HasValue )
{
foreach ( var activity in _workflow.ActiveActivities )
{
_action = activity.Actions.Where( a => a.ActionTypeId == ActionTypeId.Value ).FirstOrDefault();
if ( _action != null )
{
_activity = activity;
_activity.LoadAttributes();
//.........这里部分代码省略.........
示例3: HydrateObjects
//.........这里部分代码省略.........
{
entity = new PersonService( _rockContext ).Get( personId.Value );
}
else
{
int? groupId = PageParameter( "GroupId" ).AsIntegerOrNull();
if ( groupId.HasValue )
{
entity = new GroupService( _rockContext ).Get( groupId.Value );
}
}
// Loop through all the query string parameters and try to set any workflow
// attributes that might have the same key
foreach ( string key in Request.QueryString.AllKeys )
{
_workflow.SetAttributeValue( key, Request.QueryString[key] );
}
List<string> errorMessages;
if ( _workflow.Process( _rockContext, entity, out errorMessages ) )
{
// If the workflow type is persisted, save the workflow
if ( _workflow.IsPersisted || _workflowType.IsPersisted )
{
if ( _workflow.Id == 0 )
{
_workflowService.Add( _workflow );
}
_rockContext.WrapTransaction( () =>
{
_rockContext.SaveChanges();
_workflow.SaveAttributeValues( _rockContext );
foreach ( var activity in _workflow.Activities )
{
activity.SaveAttributeValues( _rockContext );
}
} );
WorkflowId = _workflow.Id;
}
}
}
}
if ( _workflow == null )
{
ShowMessage( NotificationBoxType.Danger, "Workflow Activation Error", "Workflow could not be activated." );
return false;
}
if ( _workflow.IsActive )
{
if ( ActionTypeId.HasValue )
{
foreach ( var activity in _workflow.ActiveActivities )
{
_action = activity.Actions.Where( a => a.ActionTypeId == ActionTypeId.Value ).FirstOrDefault();
if ( _action != null )
{
_activity = activity;
_activity.LoadAttributes();
_actionType = _action.ActionType;
ActionTypeId = _actionType.Id;
示例4: Process
/// <summary>
/// Processes the specified <see cref="Rock.Model.Workflow" />
/// </summary>
/// <param name="workflow">The <see cref="Rock.Model.Workflow" /> instance to process.</param>
/// <param name="entity">The entity.</param>
/// <param name="errorMessages">A <see cref="System.Collections.Generic.List{String}" /> that contains any error messages that were returned while processing the <see cref="Rock.Model.Workflow" />.</param>
/// <returns></returns>
public bool Process( Workflow workflow, object entity, out List<string> errorMessages )
{
var rockContext = (RockContext)this.Context;
if ( workflow.IsPersisted )
{
workflow.IsProcessing = true;
rockContext.SaveChanges();
}
bool result = workflow.ProcessActivities( rockContext, entity, out errorMessages );
if ( workflow.Status == "DeleteWorkflowNow")
{
if ( workflow.Id > 0 )
{
rockContext.SaveChanges();
Delete( workflow );
rockContext.SaveChanges();
}
result = true;
}
else
{
if ( workflow.IsPersisted || workflow.WorkflowType.IsPersisted )
{
if ( workflow.Id == 0 )
{
Add( workflow );
}
rockContext.WrapTransaction( () =>
{
rockContext.SaveChanges();
workflow.SaveAttributeValues( rockContext );
foreach ( var activity in workflow.Activities )
{
activity.SaveAttributeValues( rockContext );
}
} );
workflow.IsProcessing = false;
rockContext.SaveChanges();
}
}
return result;
}