Skip to content

Commit 1fe32f5

Browse files
Ticket #30 : Start to change the workflow engine
1 parent d7b2917 commit 1fe32f5

File tree

372 files changed

+2766
-11196
lines changed

Some content is hidden

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

372 files changed

+2766
-11196
lines changed
Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
using CaseManagement.CMMN.Domains;
2+
using System;
3+
using System.Collections.Generic;
4+
5+
namespace CaseManagement.CMMN.CasePlanInstance.Processors.Builders
6+
{
7+
public class CaseElementInstanceBuilder
8+
{
9+
private ICollection<CriteriaBuilder> _entryCriterions;
10+
11+
public CaseElementInstanceBuilder()
12+
{
13+
_entryCriterions = new List<CriteriaBuilder>();
14+
}
15+
16+
internal string Id { get; set; }
17+
internal string Name { get; set; }
18+
19+
public CaseElementInstanceBuilder AddEntryCriteria(string name, Action<CriteriaBuilder> callback = null)
20+
{
21+
var builder = new CriteriaBuilder(name);
22+
if (callback != null)
23+
{
24+
callback(builder);
25+
}
26+
27+
_entryCriterions.Add(builder);
28+
return this;
29+
}
30+
31+
public CasePlanElementInstance Build()
32+
{
33+
var result = InternalBuild();
34+
foreach(var entryCritera in _entryCriterions)
35+
{
36+
result.EntryCriterions.Add(entryCritera.Build());
37+
}
38+
39+
return result;
40+
}
41+
42+
protected virtual CasePlanElementInstance InternalBuild()
43+
{
44+
return null;
45+
}
46+
}
47+
48+
public class BaseTaskInstanceBuilder : CaseElementInstanceBuilder
49+
{
50+
protected ManualActivationRule ManualActivationRule { get; set; }
51+
52+
public BaseTaskInstanceBuilder SetManualActivationRule(string name, CMMNExpression expression)
53+
{
54+
ManualActivationRule = new ManualActivationRule
55+
{
56+
Expression = expression,
57+
Name = name
58+
};
59+
return this;
60+
}
61+
}
62+
63+
public class EmptyTaskInstanceBuilder : BaseTaskInstanceBuilder
64+
{
65+
protected override CasePlanElementInstance InternalBuild()
66+
{
67+
return new EmptyTaskElementInstance
68+
{
69+
Id = Id,
70+
Name = Name,
71+
ManualActivationRule = ManualActivationRule
72+
};
73+
}
74+
}
75+
76+
public class HumanTaskInstanceBuilder : BaseTaskInstanceBuilder
77+
{
78+
public string PerformerRef { get; set; }
79+
80+
protected override CasePlanElementInstance InternalBuild()
81+
{
82+
return new HumanTaskElementInstance
83+
{
84+
Id = Id,
85+
Name = Name,
86+
PerformerRef = PerformerRef,
87+
ManualActivationRule = ManualActivationRule
88+
};
89+
}
90+
}
91+
}

src/CaseManagement.CMMN/Builders/CaseFileItemBuilder.cs

Lines changed: 0 additions & 26 deletions
This file was deleted.
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
using CaseManagement.CMMN.Domains;
2+
using System;
3+
4+
namespace CaseManagement.CMMN.CasePlanInstance.Processors.Builders
5+
{
6+
public class CasePlanInstanceBuilder : StageInstanceBuilder
7+
{
8+
private CasePlanInstanceBuilder(string id, string casePlanName) : base(id, casePlanName)
9+
{
10+
}
11+
12+
public static CasePlanInstanceBuilder New(string id, string casePlanName)
13+
{
14+
return new CasePlanInstanceBuilder(id, casePlanName);
15+
}
16+
17+
public new CasePlanInstanceBuilder AddEmptyTask(string id, string name, Action<CaseElementInstanceBuilder> callback = null)
18+
{
19+
base.AddEmptyTask(id, name, callback);
20+
return this;
21+
}
22+
23+
public new CasePlanInstanceBuilder AddHumanTask(string id, string name, string performerRef, Action<CaseElementInstanceBuilder> callback = null)
24+
{
25+
base.AddHumanTask(id, name, performerRef, callback);
26+
return this;
27+
}
28+
29+
public new CasePlanInstanceAggregate Build()
30+
{
31+
var result = new CasePlanInstanceAggregate
32+
{
33+
Id = Id,
34+
Name = Name,
35+
Content = base.Build()
36+
};
37+
return result;
38+
}
39+
}
40+
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
using CaseManagement.CMMN.Domains;
2+
using System.Collections.Generic;
3+
4+
namespace CaseManagement.CMMN.CasePlanInstance.Processors.Builders
5+
{
6+
public class CriteriaBuilder
7+
{
8+
private readonly string _name;
9+
private ICollection<PlanItemOnPart> _planItems;
10+
11+
public CriteriaBuilder(string name)
12+
{
13+
_name = name;
14+
_planItems = new List<PlanItemOnPart>();
15+
}
16+
17+
public CriteriaBuilder AddPlanItemOnPart(string sourceRef, CMMNTransitions transition)
18+
{
19+
_planItems.Add(new PlanItemOnPart
20+
{
21+
SourceRef = sourceRef,
22+
StandardEvent = transition
23+
});
24+
return this;
25+
}
26+
27+
public Criteria Build()
28+
{
29+
var result = new Criteria(_name);
30+
result.SEntry = new SEntry(_name)
31+
{
32+
PlanItemOnParts = _planItems
33+
};
34+
return result;
35+
}
36+
}
37+
}

src/CaseManagement.CMMN/Builders/HumanTaskBuilder.cs

Lines changed: 0 additions & 32 deletions
This file was deleted.

src/CaseManagement.CMMN/Builders/MilestoneBuilder.cs

Lines changed: 0 additions & 11 deletions
This file was deleted.

src/CaseManagement.CMMN/Builders/PlanItemDefinitionBuilder.cs

Lines changed: 0 additions & 7 deletions
This file was deleted.

src/CaseManagement.CMMN/Builders/ProcessTaskBuilder.cs

Lines changed: 0 additions & 47 deletions
This file was deleted.

src/CaseManagement.CMMN/Builders/SEntryBuilder.cs

Lines changed: 0 additions & 37 deletions
This file was deleted.

src/CaseManagement.CMMN/Builders/StageBuilder.cs

Lines changed: 0 additions & 57 deletions
This file was deleted.

0 commit comments

Comments
 (0)