Skip to content

Commit aeb1166

Browse files
Ticket 24 : Display case plan
1 parent 18ef8ee commit aeb1166

248 files changed

Lines changed: 2889 additions & 2554 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.

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

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,10 @@ namespace CaseManagement.CMMN.AspNetCore.Apis
1919
public class CaseFormInstancesController : Controller
2020
{
2121
private readonly IFormInstanceQueryRepository _formInstanceQueryRepository;
22-
private readonly IRoleQueryRepository _roleQueryRepository;
2322

24-
public CaseFormInstancesController(IFormInstanceQueryRepository formInstanceQueryRepository, IRoleQueryRepository roleQueryRepository)
23+
public CaseFormInstancesController(IFormInstanceQueryRepository formInstanceQueryRepository)
2524
{
2625
_formInstanceQueryRepository = formInstanceQueryRepository;
27-
_roleQueryRepository = roleQueryRepository;
2826
}
2927

3028
[HttpGet("search")]
@@ -50,6 +48,7 @@ private static JObject ToDto(FindResponse<FormInstanceAggregate> resp)
5048
{ "create_datetime", r.CreateDateTime },
5149
{ "update_datetime", r.UpdateDateTime },
5250
{ "performer", r.PerformerRole },
51+
{ "case_plan_id", r.CasePlanId },
5352
{ "case_plan_instance_id", r.CasePlanInstanceId },
5453
{ "case_plan_element_instance_id", r.CaseElementInstanceId },
5554
{ "form_id", r.FormId },
@@ -76,6 +75,12 @@ private static FindFormInstanceParameter ExtractFindFormInstanceParameter(IEnume
7675
{
7776
var parameter = new FindFormInstanceParameter();
7877
parameter.ExtractFindParameter(query);
78+
string casePlanId;
79+
if (query.TryGet("case_plan_id", out casePlanId))
80+
{
81+
parameter.CasePlanId = casePlanId;
82+
}
83+
7984
return parameter;
8085
}
8186
}

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -768,6 +768,7 @@ private static FindWorkflowInstanceParameter ExtractFindParameter(IEnumerable<Ke
768768
string orderBy;
769769
FindOrders findOrder;
770770
string casePlanId;
771+
string owner;
771772
var parameter = new FindWorkflowInstanceParameter();
772773
if (query.TryGet("start_index", out startIndex))
773774
{
@@ -794,6 +795,11 @@ private static FindWorkflowInstanceParameter ExtractFindParameter(IEnumerable<Ke
794795
parameter.CasePlanId = casePlanId;
795796
}
796797

798+
if(query.TryGet("owner", out owner))
799+
{
800+
parameter.CaseOwner = owner;
801+
}
802+
797803
return parameter;
798804
}
799805
}

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

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public CaseWorkerTasksController(ICaseWorkerTaskQueryRepository activationQueryR
3030
public async Task<IActionResult> Search()
3131
{
3232
var query = HttpContext.Request.Query.ToEnumerable();
33-
var result = await _activationQueryRepository.Find(ExtractFindParameter(query, null));
33+
var result = await _activationQueryRepository.Find(ExtractFindParameter(query));
3434
return new OkObjectResult(ToDto(result));
3535
}
3636

@@ -44,21 +44,30 @@ private static JObject ToDto(FindResponse<CaseWorkerTaskAggregate> resp)
4444
{ "content", new JArray(resp.Content.Select(r => {
4545
var result = new JObject
4646
{
47+
{ "case_plan_id", r.CasePlanId },
4748
{ "case_plan_instance_id", r.CasePlanInstanceId },
4849
{ "case_plan_element_instance_id", r.CasePlanElementInstanceId},
4950
{ "create_datetime", r.CreateDateTime },
51+
{ "update_datetime", r.UpdateDateTime },
5052
{ "performer", r.PerformerRole },
53+
{ "type", Enum.GetName(typeof(CaseWorkerTaskTypes), r.TaskType).ToLowerInvariant() },
5154
{ "status", Enum.GetName(typeof(CaseWorkerTaskStatus), r.Status).ToLowerInvariant() }
5255
};
5356
return result;
5457
})) }
5558
};
5659
}
5760

58-
private static FindCaseWorkerTasksParameter ExtractFindParameter(IEnumerable<KeyValuePair<string, string>> query, IEnumerable<string> roleIds)
61+
private static FindCaseWorkerTasksParameter ExtractFindParameter(IEnumerable<KeyValuePair<string, string>> query)
5962
{
6063
var parameter = new FindCaseWorkerTasksParameter();
6164
parameter.ExtractFindParameter(query);
65+
string casePlanId;
66+
if (query.TryGet("case_plan_id", out casePlanId))
67+
{
68+
parameter.CasePlanId = casePlanId;
69+
}
70+
6271
return parameter;
6372
}
6473
}

src/CaseManagement.CMMN/CMMNServerOptions.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,15 @@ public CMMNServerOptions()
1212
DefaultCMMNSchema = "<?xml version='1.0' encoding='UTF-8'?>\n" +
1313
"<cmmn:definitions xmlns:dc='http://www.omg.org/spec/CMMN/20151109/DC' xmlns:cmmndi='http://www.omg.org/spec/CMMN/20151109/CMMNDI' xmlns:cmmn='http://www.omg.org/spec/CMMN/20151109/MODEL' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' id='Definitions_0m2br72' targetNamespace='http://bpmn.io/schema/cmmn' exporter='cmmn-js (https://demo.bpmn.io/cmmn)' exporterVersion='0.19.2'>\n" +
1414
" <cmmn:case id='Case_0t7z7vp'>\n" +
15-
" <cmmn:casePlanModel id='CasePlanModel_08bspn4' name='A CasePlanModel'>\n" +
15+
" <cmmn:casePlanModel id='{id}' name='A CasePlanModel'>\n" +
1616
" <cmmn:planItem id='PlanItem_1dphpiz' definitionRef='Task_1r5vfut' />\n" +
1717
" <cmmn:task id='Task_1r5vfut' />\n" +
1818
" </cmmn:casePlanModel>\n" +
1919
" </cmmn:case>\n" +
2020
" <cmmndi:CMMNDI>\n" +
2121
" <cmmndi:CMMNDiagram id='CMMNDiagram_1'>\n" +
2222
" <cmmndi:Size width='500' height='500' />\n" +
23-
" <cmmndi:CMMNShape id='DI_CasePlanModel_08bspn4' cmmnElementRef='CasePlanModel_08bspn4'>\n" +
23+
" <cmmndi:CMMNShape id='DI_{id}' cmmnElementRef='{id}'>\n" +
2424
" <dc:Bounds x='156' y='99' width='534' height='389' />\n" +
2525
" <cmmndi:CMMNLabel />\n" +
2626
" </cmmndi:CMMNShape>\n" +

src/CaseManagement.CMMN/CaseFile/CommandHandlers/AddCaseFileCommandHandler.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
using CaseManagement.CMMN.Domains;
33
using CaseManagement.CMMN.Infrastructures;
44
using Microsoft.Extensions.Options;
5+
using System;
56
using System.Threading.Tasks;
67

78
namespace CaseManagement.CMMN.CaseFile.CommandHandlers
@@ -23,6 +24,7 @@ public async Task<string> Handle(AddCaseFileCommand addCaseFileCommand)
2324
if (string.IsNullOrWhiteSpace(addCaseFileCommand.Payload))
2425
{
2526
payload = _options.DefaultCMMNSchema;
27+
payload = payload.Replace("{id}", $"CasePlanModel_{Guid.NewGuid()}");
2628
}
2729

2830
var caseFile = CaseFileAggregate.New(addCaseFileCommand.Name, addCaseFileCommand.Description, 0, addCaseFileCommand.Owner, payload);

src/CaseManagement.CMMN/CasePlanInstance/CommandHandlers/CreateCaseInstanceCommandHandler.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ public CreateCaseInstanceCommandHandler(ICasePlanQueryRepository casePlanQueryRe
3131
}
3232

3333
var workflowInstance = Domains.CasePlanInstanceAggregate.New(workflowDefinition);
34-
workflowInstance.CaseOwner = command.Performer;
3534
await _commitAggregateHelper.Commit(workflowInstance, workflowInstance.GetStreamName(), CMMNConstants.QueueNames.CasePlanInstances);
3635
return workflowInstance;
3736
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ private async Task<ProcessorParameter> HandleTask(ProcessorParameter parameter,
5959
CriteriaListener.ListenEntryCriterias(parameter, tokenSource.Token);
6060
if (parameter.CaseInstance.IsManualActivationRuleSatisfied(parameter.CaseElementInstance.Id, parameter.CaseDefinition))
6161
{
62-
var caseworkertask = CaseWorkerTaskAggregate.New(string.Empty, parameter.CaseInstance.Id, parameter.CaseElementInstance.Id, CaseWorkerTaskTypes.ActivateCasePlanElement);
62+
var caseworkertask = CaseWorkerTaskAggregate.New(string.Empty, parameter.CaseInstance.CasePlanId, parameter.CaseInstance.Id, parameter.CaseElementInstance.Id, CaseWorkerTaskTypes.ActivateCasePlanElement);
6363
CommitAggregateHelper.Commit(caseworkertask, CaseWorkerTaskAggregate.GetStreamName(caseworkertask.Id), CMMNConstants.QueueNames.CaseWorkerTasks).Wait();
6464
}
6565

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ protected override async Task Run(ProcessorParameter parameter, CancellationToke
3131
});
3232
if (!string.IsNullOrWhiteSpace(humanTask.FormId))
3333
{
34-
var formInstance = FormInstanceAggregate.New(humanTask.FormId, parameter.CaseInstance.Id, parameter.CaseElementInstance.Id, humanTask.PerformerRef);
34+
var formInstance = FormInstanceAggregate.New(humanTask.FormId, parameter.CaseInstance.CasePlanId, parameter.CaseInstance.Id, parameter.CaseElementInstance.Id, humanTask.PerformerRef);
3535
await CommitAggregateHelper.Commit(formInstance, FormInstanceAggregate.GetStreamName(formInstance.Id), CMMNConstants.QueueNames.FormInstances);
3636
}
3737

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ private ProcessorParameter HandleTask(ProcessorParameter parameter, Cancellation
6060
var planItemDefinition = parameter.CaseDefinition.GetElement(parameter.CaseElementInstance.CaseElementDefinitionId);
6161
if (parameter.CaseInstance.IsManualActivationRuleSatisfied(parameter.CaseElementInstance.Id, parameter.CaseDefinition))
6262
{
63-
var caseworkertask = CaseWorkerTaskAggregate.New(string.Empty, parameter.CaseInstance.Id, parameter.CaseElementInstance.Id, CaseWorkerTaskTypes.ActivateCasePlanElement);
63+
var caseworkertask = CaseWorkerTaskAggregate.New(string.Empty, parameter.CaseInstance.CasePlanId, parameter.CaseInstance.Id, parameter.CaseElementInstance.Id, CaseWorkerTaskTypes.ActivateCasePlanElement);
6464
_commitAggregateHelper.Commit(caseworkertask, CaseWorkerTaskAggregate.GetStreamName(caseworkertask.Id), CMMNConstants.QueueNames.CaseWorkerTasks).Wait();
6565
}
6666

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -634,7 +634,7 @@ public void SetVariable(string key, string value)
634634
public static CasePlanInstanceAggregate New(CasePlanAggregate workflowDefinition)
635635
{
636636
var result = new CasePlanInstanceAggregate();
637-
var evt = new CaseInstanceCreatedEvent(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 0, workflowDefinition.Id, DateTime.UtcNow);
637+
var evt = new CaseInstanceCreatedEvent(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 0, workflowDefinition.Id, DateTime.UtcNow, workflowDefinition.CaseOwner);
638638
var secondEvt = new CaseTransitionRaisedEvent(Guid.NewGuid().ToString(), evt.AggregateId, 1, CMMNTransitions.Create, DateTime.UtcNow);
639639
result.DomainEvents.Add(evt);
640640
result.DomainEvents.Add(secondEvt);
@@ -704,6 +704,7 @@ private void Handle(CaseInstanceCreatedEvent evt)
704704
Id = evt.AggregateId;
705705
CreateDateTime = evt.CreateDateTime;
706706
CasePlanId = evt.CaseDefinitionId;
707+
CaseOwner = evt.Performer;
707708
}
708709

709710
private CaseElementInstance Handle(CaseElementCreatedEvent evt)

0 commit comments

Comments
 (0)