Skip to content

Commit 2895f6b

Browse files
Ticket 25 : Start to display the case plan instance
1 parent d509f52 commit 2895f6b

File tree

45 files changed

+380
-588
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+380
-588
lines changed

Architecture.pptx

53 Bytes
Binary file not shown.

src/CaseManagement.CMMN.AspNetCore/Apis/CasePlanInstancesController.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -694,6 +694,7 @@ private static JObject ToDto(CasePlanInstanceAggregate workflowInstance)
694694
var result = new JObject
695695
{
696696
{ "id", workflowInstance.Id },
697+
{ "name", workflowInstance.CasePlanName },
697698
{ "create_datetime", workflowInstance.CreateDateTime},
698699
{ "case_plan_id", workflowInstance.CasePlanId },
699700
{ "context", ToDto(workflowInstance.ExecutionContext) },
@@ -748,9 +749,11 @@ private static JObject ToDto(CaseElementInstance elt)
748749
var result = new JObject
749750
{
750751
{ "id", elt.Id },
752+
{ "name", elt.CasePlanElementName },
753+
{ "type", Enum.GetName(typeof(CaseElementTypes), elt.CasePlanElementType).ToLowerInvariant() },
751754
{ "version", elt.Version },
752755
{ "create_datetime", elt.CreateDateTime},
753-
{ "case_plan_element_id", elt.CaseElementDefinitionId },
756+
{ "case_plan_element_id", elt.CasePlanElementId },
754757
{ "state", elt.State }
755758
};
756759
var stateHistories = new JArray();

src/CaseManagement.CMMN/CasePlanInstance/Processors/BaseCMMNTaskProcessor.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ private async Task<ProcessorParameter> HandleTask(ProcessorParameter parameter,
5555
continueExecution = false;
5656
tokenSource.Cancel();
5757
});
58-
var planItemDefinition = parameter.CaseDefinition.GetElement(parameter.CaseElementInstance.CaseElementDefinitionId);
58+
var planItemDefinition = parameter.CaseDefinition.GetElement(parameter.CaseElementInstance.CasePlanElementId);
5959
CriteriaListener.ListenEntryCriterias(parameter, tokenSource.Token);
6060
if (parameter.CaseInstance.IsManualActivationRuleSatisfied(parameter.CaseElementInstance.Id, parameter.CaseDefinition))
6161
{

src/CaseManagement.CMMN/CasePlanInstance/Processors/CMMNProcessTaskProcessor.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ public CMMNProcessTaskProcessor(ICaseLaunchProcessCommandHandler caseLaunchProce
2222

2323
protected override async Task Run(ProcessorParameter parameter, CancellationToken token)
2424
{
25-
var planItem = parameter.CaseDefinition.GetElement(parameter.CaseElementInstance.CaseElementDefinitionId) as PlanItemDefinition;
25+
var planItem = parameter.CaseDefinition.GetElement(parameter.CaseElementInstance.CasePlanElementId) as PlanItemDefinition;
2626
var processTask = planItem.PlanItemDefinitionProcessTask;
2727
await HandleProcess(parameter, token);
2828
}
@@ -34,7 +34,7 @@ protected override void Unsubscribe()
3434

3535
private async Task HandleProcess(ProcessorParameter parameter, CancellationToken token)
3636
{
37-
var planItem = parameter.CaseDefinition.GetElement(parameter.CaseElementInstance.CaseElementDefinitionId) as PlanItemDefinition;
37+
var planItem = parameter.CaseDefinition.GetElement(parameter.CaseElementInstance.CasePlanElementId) as PlanItemDefinition;
3838
var processTask = planItem.PlanItemDefinitionProcessTask;
3939
var parameters = new Dictionary<string, string>();
4040
var processRef = processTask.ProcessRef;
@@ -79,7 +79,7 @@ await _caseLaunchProcessCommandHandler.Handle(new LaunchCaseProcessCommand(proce
7979

8080
private Task HandleLaunchCaseProcessCallback(ProcessorParameter parameter, CaseProcessResponse caseProcessResponse, CancellationToken token)
8181
{
82-
var planItem = parameter.CaseDefinition.GetElement(parameter.CaseElementInstance.CaseElementDefinitionId) as PlanItemDefinition;
82+
var planItem = parameter.CaseDefinition.GetElement(parameter.CaseElementInstance.CasePlanElementId) as PlanItemDefinition;
8383
var processTask = planItem.PlanItemDefinitionProcessTask;
8484
foreach (var mapping in processTask.Mappings)
8585
{

src/CaseManagement.CMMN/CasePlanInstance/Processors/CMMNStageProcessor.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ private ProcessorParameter HandleTask(ProcessorParameter parameter, Cancellation
5757
continueExecution = false;
5858
});
5959
CriteriaListener.ListenEntryCriterias(parameter, tokenSource.Token);
60-
var planItemDefinition = parameter.CaseDefinition.GetElement(parameter.CaseElementInstance.CaseElementDefinitionId);
60+
var planItemDefinition = parameter.CaseDefinition.GetElement(parameter.CaseElementInstance.CasePlanElementId);
6161
if (parameter.CaseInstance.IsManualActivationRuleSatisfied(parameter.CaseElementInstance.Id, parameter.CaseDefinition))
6262
{
6363
var caseworkertask = CaseWorkerTaskAggregate.New(string.Empty, parameter.CaseInstance.CasePlanId, parameter.CaseInstance.Id, parameter.CaseElementInstance.Id, CaseWorkerTaskTypes.ActivateCasePlanElement);

src/CaseManagement.CMMN/CasePlanInstance/Processors/CMMNTimerEventListenerProcessor.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ private async Task<ProcessorParameter> HandleTask(ProcessorParameter parameter,
4848
var subParameter = parameter;
4949
if (i > 0)
5050
{
51-
var newInstance = parameter.CaseInstance.CreateWorkflowElementInstance(parameter.CaseElementInstance.CaseElementDefinitionId, parameter.CaseElementInstance.CaseElementDefinitionType);
51+
var newInstance = parameter.CaseInstance.CreateWorkflowElementInstance(parameter.CaseElementInstance.CasePlanElementId, parameter.CaseElementInstance.CasePlanElementName, parameter.CaseElementInstance.CasePlanElementType);
5252
subParameter = new ProcessorParameter(parameter.CaseDefinition, parameter.CaseInstance, newInstance);
5353
}
5454

src/CaseManagement.CMMN/CasePlanInstance/Processors/CaseFileItem/DirectoryCaseFileItemListener.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ private async Task HandleTask(ProcessorParameter processorParameter, Cancellatio
5656
fileSystemWatcher.EnableRaisingEvents = true;
5757
if (isNewDirectory)
5858
{
59-
await _caseFileItemRepository.AddCaseFileItem(processorParameter.CaseInstance.Id, processorParameter.CaseElementInstance.Id, processorParameter.CaseElementInstance.CaseElementDefinitionId, tmpDirectory);
59+
await _caseFileItemRepository.AddCaseFileItem(processorParameter.CaseInstance.Id, processorParameter.CaseElementInstance.Id, processorParameter.CaseElementInstance.CasePlanElementId, tmpDirectory);
6060
}
6161

6262
while (!cancellationTokenSource.Token.IsCancellationRequested)

src/CaseManagement.CMMN/CasePlanInstance/Processors/Listeners/CriteriaListener.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ public ListenEntryCriteriaResult(Task task, CriterionListener listener)
3131

3232
public static void ListenEntryCriterias(ProcessorParameter parameter, CancellationToken cancellationToken)
3333
{
34-
var planItemDefinition = parameter.CaseDefinition.GetElement(parameter.CaseElementInstance.CaseElementDefinitionId);
34+
var planItemDefinition = parameter.CaseDefinition.GetElement(parameter.CaseElementInstance.CasePlanElementId);
3535
var entryCriterion = planItemDefinition.EntryCriterions.ToList();
3636
if (!entryCriterion.Any())
3737
{
@@ -49,7 +49,7 @@ public static void ListenEntryCriterias(ProcessorParameter parameter, Cancellati
4949

5050
public static ListenEntryCriteriaResult ListenEntryCriteriasBg(ProcessorParameter parameter, CancellationToken cancellationToken)
5151
{
52-
var planItemDefinition = parameter.CaseDefinition.GetElement(parameter.CaseElementInstance.CaseElementDefinitionId);
52+
var planItemDefinition = parameter.CaseDefinition.GetElement(parameter.CaseElementInstance.CasePlanElementId);
5353
var entryCriterion = planItemDefinition.EntryCriterions.ToList();
5454
if (!entryCriterion.Any())
5555
{
@@ -72,7 +72,7 @@ public static ListenEntryCriteriaResult ListenEntryCriteriasBg(ProcessorParamete
7272

7373
public static KeyValuePair<Task, CriterionListener>? ListenExitCriterias(ProcessorParameter parameter, CancellationToken cancellationToken)
7474
{
75-
var planItemDefinition = parameter.CaseDefinition.GetElement(parameter.CaseElementInstance.CaseElementDefinitionId);
75+
var planItemDefinition = parameter.CaseDefinition.GetElement(parameter.CaseElementInstance.CasePlanElementId);
7676
return ListenExitCriterias(parameter, planItemDefinition.ExitCriterions.ToList(), cancellationToken);
7777
}
7878

@@ -140,7 +140,7 @@ private void HandlePlanItemChanged(object obj, DomainEventArgs args)
140140
}
141141

142142
var sourcePlanItemInstance = _parameter.CaseInstance.GetWorkflowElementInstance(evt.CaseElementId);
143-
if (!_criterions.Any(e => e.SEntry.PlanItemOnParts.Any(p => p.SourceRef == sourcePlanItemInstance.CaseElementDefinitionId && p.StandardEvent == evt.Transition) || e.SEntry.FileItemOnParts.Any(p => p.SourceRef == sourcePlanItemInstance.CaseElementDefinitionId && p.StandardEvent == evt.Transition)))
143+
if (!_criterions.Any(e => e.SEntry.PlanItemOnParts.Any(p => p.SourceRef == sourcePlanItemInstance.CasePlanElementId && p.StandardEvent == evt.Transition) || e.SEntry.FileItemOnParts.Any(p => p.SourceRef == sourcePlanItemInstance.CasePlanElementId && p.StandardEvent == evt.Transition)))
144144
{
145145
return;
146146
}

src/CaseManagement.CMMN/CasePlanInstance/Processors/Listeners/ManualActivationListener.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ public class ManualActivationListener
77
{
88
public static bool Listen(ProcessorParameter parameter, CancellationToken cancellationToken)
99
{
10-
var planItemDefinition = parameter.CaseDefinition.GetElement(parameter.CaseElementInstance.CaseElementDefinitionId);
10+
var planItemDefinition = parameter.CaseDefinition.GetElement(parameter.CaseElementInstance.CasePlanElementId);
1111
if (!parameter.CaseInstance.IsManualActivationRuleSatisfied(parameter.CaseElementInstance.Id, parameter.CaseDefinition))
1212
{
1313
return false;

src/CaseManagement.CMMN/Domains/CasePlanInstance/CaseElementInstance.cs

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,12 @@ public class CaseElementInstance : ICloneable
99
{
1010
private object _lock;
1111

12-
public CaseElementInstance(string id, DateTime createDateTime, string workflowElementDefinitionId, CaseElementTypes workflowElementDefinitionType, int version, string parentId)
12+
public CaseElementInstance(string id, DateTime createDateTime, string casePlanElementId, CaseElementTypes casePlanElementType, int version, string parentId)
1313
{
1414
Id = id;
1515
CreateDateTime = createDateTime;
16-
CaseElementDefinitionId = workflowElementDefinitionId;
17-
CaseElementDefinitionType = workflowElementDefinitionType;
16+
CasePlanElementId = casePlanElementId;
17+
CasePlanElementType = casePlanElementType;
1818
Version = version;
1919
StateHistories = new List<CaseElementInstanceHistory>();
2020
TransitionHistories = new List<CaseElementInstanceTransitionHistory>();
@@ -26,8 +26,9 @@ public CaseElementInstance(string id, DateTime createDateTime, string workflowEl
2626
public string Id { get; set; }
2727
public int Version { get; set; }
2828
public DateTime CreateDateTime { get; set; }
29-
public string CaseElementDefinitionId { get; set; }
30-
public CaseElementTypes CaseElementDefinitionType { get; set; }
29+
public string CasePlanElementId { get; set; }
30+
public string CasePlanElementName { get; set; }
31+
public CaseElementTypes CasePlanElementType { get; set; }
3132
public string State { get; set; }
3233
public string ParentId { get; set; }
3334
public ICollection<CaseElementInstanceHistory> StateHistories { get; set; }
@@ -58,7 +59,7 @@ public bool CanBeTerminated()
5859
{
5960
lock (_lock)
6061
{
61-
switch (CaseElementDefinitionType)
62+
switch (CasePlanElementType)
6263
{
6364
case CaseElementTypes.HumanTask:
6465
case CaseElementTypes.ProcessTask:
@@ -95,7 +96,7 @@ public bool IsAvailable()
9596
{
9697
lock (_lock)
9798
{
98-
switch (CaseElementDefinitionType)
99+
switch (CasePlanElementType)
99100
{
100101
case CaseElementTypes.HumanTask:
101102
case CaseElementTypes.ProcessTask:
@@ -132,7 +133,7 @@ public bool IsFail()
132133
{
133134
lock(_lock)
134135
{
135-
switch (CaseElementDefinitionType)
136+
switch (CasePlanElementType)
136137
{
137138
case CaseElementTypes.HumanTask:
138139
case CaseElementTypes.ProcessTask:
@@ -154,7 +155,7 @@ public bool IsSuspend()
154155
{
155156
lock(_lock)
156157
{
157-
switch (CaseElementDefinitionType)
158+
switch (CasePlanElementType)
158159
{
159160
case CaseElementTypes.HumanTask:
160161
case CaseElementTypes.ProcessTask:
@@ -184,7 +185,7 @@ public bool IsActive()
184185
{
185186
lock(_lock)
186187
{
187-
switch (CaseElementDefinitionType)
188+
switch (CasePlanElementType)
188189
{
189190
case CaseElementTypes.CaseFileItem:
190191
if (State == Enum.GetName(typeof(CaseFileItemStates), CaseFileItemStates.Available))
@@ -221,7 +222,7 @@ public bool IsComplete()
221222
{
222223
lock(_lock)
223224
{
224-
switch (CaseElementDefinitionType)
225+
switch (CasePlanElementType)
225226
{
226227
case CaseElementTypes.CaseFileItem:
227228
if (State == Enum.GetName(typeof(CaseFileItemStates), CaseFileItemStates.Discarded))
@@ -256,7 +257,7 @@ public bool IsComplete()
256257

257258
private string GetState(CMMNTransitions planItemTransition)
258259
{
259-
switch(CaseElementDefinitionType)
260+
switch(CasePlanElementType)
260261
{
261262
case CaseElementTypes.HumanTask:
262263
case CaseElementTypes.Task:
@@ -539,9 +540,10 @@ private string GetState(CMMNTransitions planItemTransition)
539540

540541
public object Clone()
541542
{
542-
return new CaseElementInstance(Id, CreateDateTime, CaseElementDefinitionId, CaseElementDefinitionType, Version, ParentId)
543+
return new CaseElementInstance(Id, CreateDateTime, CasePlanElementId, CasePlanElementType, Version, ParentId)
543544
{
544545
State = State,
546+
CasePlanElementName = CasePlanElementName,
545547
StateHistories = StateHistories == null ? null : StateHistories.Select(s => (CaseElementInstanceHistory)s.Clone()).ToList(),
546548
TransitionHistories = TransitionHistories == null ? null : TransitionHistories.Select(t => (CaseElementInstanceTransitionHistory)t.Clone()).ToList()
547549
};

0 commit comments

Comments
 (0)