Bonjour,
j'ai un StateMachine workflow d'approbation d'une demande de droits.
Cette demande peut avoir les états suivants (ce sont des "State" du workflow) : InProgress, Validated, Cancelled, Processed, etc.
Quand je souhaite par exemple valider une demande, c a d la faire passer de "Inprogress" à "Validated", je déclenche un évènement "eventValidated".
Le problème est que parfois l'eventHandler associé à cet évènement est null.
Quand je crée moi-même la demande sur mon poste, tout se passe bien, quand cette demande a été créée sur un autre poste (on travaille à deux sur ce projet), l'eventHandler est null.
Voici le code associé dans ma classe Service :
Code : Sélectionner tout - Visualiser dans une fenêtre à part public event EventHandler<WrapperEventArgs> eventValidated;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 public bool ValidateDemand(Demand pDemand) { Check.ArgumentIsNotNull(pDemand, "demand"); bool eventResult = RaiseEvent(eventValidated, pDemand, pDemand.WorkflowId); if (eventResult == true) { WorkflowResults workflowResults = WorkflowMediator.Instance.RunWorkflow(pDemand.WorkflowId); Check.IsNotNull(workflowResults, "Could not harvest workflow results"); VerifyResults(workflowResults, WorkflowStatus.Running); } return eventResult; }Donc c'est le "ev" (= EventHandler<WrapperEventArgs> eventValidated), paramètre de la dernière méthode "RaiseEvent" qui est parfois null.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 private bool RaiseEvent(EventHandler<WrapperEventArgs> ev, Demand pDemand, Guid instanceId) { bool result = true; try { if (ev != null) { WrapperEventArgs e = new WrapperEventArgs(instanceId, pDemand); ev(null, e); } else result = false; } catch (EventDeliveryFailedException) { result = false; } return result; }
Une idée d'où pourrait venir ce problème ?
Merci,
Partager