Skip to content

Commit 2895f6b

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

45 files changed

Lines changed: 380 additions & 588 deletions

File tree

Some content is hidden

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

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)