Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using Alfa.ELMA.SDK.Workflow;
- using Alfa.ELMA.SDK.Workflow.Scripts;
- using EleWise.ELMA.ComponentModel;
- using EleWise.ELMA.Model.Events;
- using EleWise.ELMA.Workflow.Models;
- using EleWise.ELMA.Workflow.Services;
- namespace Alfa.ELMA.SDK.Components
- {
- /// <summary>
- /// Перехватчик прерывания процессов
- /// </summary>
- [Component]
- public class WorkflowInstanceTerminateHandler : IEntityActionHandler
- {
- private readonly IWorkflowScriptingService _workflowScriptingService;
- public WorkflowInstanceTerminateHandler(IWorkflowScriptingService workflowScriptingService)
- {
- _workflowScriptingService = workflowScriptingService;
- }
- public void ActionExecuted(EntityActionEventArgs e)
- {
- if (e?.Action?.Uid == WorkflowInstanceActions.TerminateGuid && e.New is IWorkflowInstance)
- {
- OnProcessTerminate(e);
- }
- }
- private void OnProcessTerminate(EntityActionEventArgs e)
- {
- var workflowInstance = (IWorkflowInstance) e.New;
- var scriptInstance = _workflowScriptingService.GetScriptInstance(workflowInstance) as IAlfaProcessScript;
- scriptInstance?.OnProcessTerminate(workflowInstance.Context);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement