Skip to content

Commit 29afe9d

Browse files
Ticket #111: Finish to update EFCore configuration
1 parent bc583ca commit 29afe9d

42 files changed

Lines changed: 2086 additions & 1367 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.BPMN.Persistence.EF/Persistence/ProcessInstanceQueryRepository.cs

Lines changed: 2 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -28,17 +28,7 @@ public ProcessInstanceQueryRepository(BPMNDbContext dbContext)
2828

2929
public async Task<ProcessInstanceResult> Get(string id, CancellationToken token)
3030
{
31-
var result = await _dbContext.ProcessInstances
32-
.AsNoTracking()
33-
.Include(_ => _.ItemDefs)
34-
.Include(_ => _.Interfaces).ThenInclude(_ => _.Operations)
35-
.Include(_ => _.Messages)
36-
.Include(_ => _.ElementDefs)
37-
.Include(_ => _.SequenceFlows)
38-
.Include(_ => _.ExecutionPathLst).ThenInclude(_ => _.Pointers).ThenInclude(_ => _.Tokens)
39-
.Include(_ => _.StateTransitions)
40-
.Include(_ => _.ElementInstances).ThenInclude(_ => _.ActivityStates)
41-
.FirstOrDefaultAsync(_ => _.AggregateId == id, token);
31+
var result = await _dbContext.ProcessInstances.FirstOrDefaultAsync(_ => _.AggregateId == id, token);
4232
if (result == null)
4333
{
4434
return null;
@@ -49,16 +39,7 @@ public async Task<ProcessInstanceResult> Get(string id, CancellationToken token)
4939

5040
public async Task<SearchResult<ProcessInstanceResult>> Find(FindProcessInstancesParameter parameter, CancellationToken token)
5141
{
52-
IQueryable<ProcessInstanceAggregate> result = _dbContext.ProcessInstances
53-
.AsNoTracking()
54-
.Include(_ => _.ItemDefs)
55-
.Include(_ => _.Interfaces).ThenInclude(_ => _.Operations)
56-
.Include(_ => _.Messages)
57-
.Include(_ => _.ElementDefs)
58-
.Include(_ => _.SequenceFlows)
59-
.Include(_ => _.ExecutionPathLst).ThenInclude(_ => _.Pointers).ThenInclude(_ => _.Tokens)
60-
.Include(_ => _.StateTransitions)
61-
.Include(_ => _.ElementInstances).ThenInclude(_ => _.ActivityStates);
42+
IQueryable<ProcessInstanceAggregate> result = _dbContext.ProcessInstances;
6243
if (!string.IsNullOrEmpty(parameter.ProcessFileId))
6344
{
6445
result = result.Where(_ => _.ProcessFileId == parameter.ProcessFileId);

src/CaseManagement.BPMN.SqlServer.Host/Startup.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,12 +48,12 @@ public void ConfigureServices(IServiceCollection services)
4848
IssuerSigningKey = ExtractKey("openid_puk.txt"),
4949
ValidAudiences = new List<string>
5050
{
51-
"http://localhost:60000",
51+
"https://localhost:60000",
5252
"https://simpleidserver.northeurope.cloudapp.azure.com/openid"
5353
},
5454
ValidIssuers = new List<string>
5555
{
56-
"http://localhost:60000",
56+
"https://localhost:60000",
5757
"https://simpleidserver.northeurope.cloudapp.azure.com/openid"
5858
}
5959
};
@@ -69,7 +69,9 @@ public void ConfigureServices(IServiceCollection services)
6969
});
7070
services.AddBPMNStoreEF(opts =>
7171
{
72-
opts.UseSqlServer(_configuration.GetConnectionString("db"), o => o.MigrationsAssembly(migrationsAssembly));
72+
opts
73+
.UseSqlServer(_configuration.GetConnectionString("db"), o => o.MigrationsAssembly(migrationsAssembly))
74+
.UseLazyLoadingProxies();
7375
});
7476
services.AddSwaggerGen();
7577
services.Configure<ForwardedHeadersOptions>(options =>

src/CaseManagement.BPMN/BPMNServerOptions.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ public BPMNServerOptions()
4848
" </bpmndi:BPMNPlane>" +
4949
" </bpmndi:BPMNDiagram>" +
5050
"</definitions>";
51-
OAuthTokenEndpoint = "http://localhost:60001/token";
51+
OAuthTokenEndpoint = "https://localhost:60000/token";
5252
ClientId = "bpmnClient";
5353
ClientSecret = "bpmnClientSecret";
5454
}

src/CaseManagement.BPMN/Domains/DelegateConfiguration/DelegateConfigurationAggregate.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@ public IEnumerable<BPMNTranslation> Descriptions
3535
return Translations.Where(t => t.Type == DESCRIPTION);
3636
}
3737
}
38-
public ICollection<BPMNTranslation> Translations { get; set; }
39-
public ICollection<DelegateConfigurationRecord> Records { get; set; }
38+
public virtual ICollection<BPMNTranslation> Translations { get; set; }
39+
public virtual ICollection<DelegateConfigurationRecord> Records { get; set; }
4040

4141
#endregion
4242

src/CaseManagement.BPMN/Domains/ProcessInstance/Common/BPMNInterface.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ public BPMNInterface()
2424
/// This attribute specifies operations that are defined as part of the Interface.
2525
/// An Interface has at least one Operation.
2626
/// </summary>
27-
public ICollection<Operation> Operations { get; set; }
27+
public virtual ICollection<Operation> Operations { get; set; }
2828

2929
public object Clone()
3030
{

src/CaseManagement.BPMN/Domains/ProcessInstance/Executions/ExecutionPath.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ public ExecutionPath()
1515
public string Id { get; set; }
1616
public DateTime CreateDateTime { get; set; }
1717
public ICollection<ExecutionPointer> ActivePointers => Pointers.Where(_ => _.IsActive).ToList();
18-
public ICollection<ExecutionPointer> Pointers { get; set; }
18+
public virtual ICollection<ExecutionPointer> Pointers { get; set; }
1919

2020
public object Clone()
2121
{

src/CaseManagement.BPMN/Domains/ProcessInstance/Executions/ExecutionPointer.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ public IEnumerable<MessageToken> Outgoing
3131
return Tokens.Where(t => t.Type == MessageTokenTypes.OUTGOING);
3232
}
3333
}
34-
public ICollection<MessageToken> Tokens { get; set; }
34+
public virtual ICollection<MessageToken> Tokens { get; set; }
3535

3636
public void AddIncoming(IEnumerable<MessageToken> tokens)
3737
{

src/CaseManagement.BPMN/Domains/ProcessInstance/FlowNodeInstance.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ public FlowNodeInstance()
1717
public FlowNodeStates State { get; set; }
1818
public ActivityStates? ActivityState { get; set; }
1919
public Dictionary<string, string> Metadata { get; set; }
20-
public ICollection<ActivityStateHistory> ActivityStates { get; set; }
20+
public virtual ICollection<ActivityStateHistory> ActivityStates { get; set; }
2121

2222
public object Clone()
2323
{

src/CaseManagement.BPMN/Domains/ProcessInstance/ProcessInstanceAggregate.cs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -37,14 +37,14 @@ public ICollection<BaseFlowNode> ElementDefs
3737
return SerializedElementDefs.Select(e => e.Deserialize()).ToList();
3838
}
3939
}
40-
public ICollection<ItemDefinition> ItemDefs { get; set; }
41-
public ICollection<BPMNInterface> Interfaces { get; set; }
42-
public ICollection<Message> Messages { get; set; }
43-
public ICollection<SerializedFlowNodeDefinition> SerializedElementDefs { get; set; }
44-
public ICollection<SequenceFlow> SequenceFlows { get; set; }
45-
public ICollection<FlowNodeInstance> ElementInstances { get; set; }
46-
public ICollection<ExecutionPath> ExecutionPathLst { get; set; }
47-
public ICollection<StateTransitionToken> StateTransitions { get; set; }
40+
public virtual ICollection<ItemDefinition> ItemDefs { get; set; }
41+
public virtual ICollection<BPMNInterface> Interfaces { get; set; }
42+
public virtual ICollection<Message> Messages { get; set; }
43+
public virtual ICollection<SerializedFlowNodeDefinition> SerializedElementDefs { get; set; }
44+
public virtual ICollection<SequenceFlow> SequenceFlows { get; set; }
45+
public virtual ICollection<FlowNodeInstance> ElementInstances { get; set; }
46+
public virtual ICollection<ExecutionPath> ExecutionPathLst { get; set; }
47+
public virtual ICollection<StateTransitionToken> StateTransitions { get; set; }
4848

4949
#region Getters
5050

src/CaseManagement.CMMN.Persistence.EF/EntityConfigurations/CaseEltInstanceConfiguration.cs

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
using CaseManagement.CMMN.Domains;
22
using Microsoft.EntityFrameworkCore;
33
using Microsoft.EntityFrameworkCore.Metadata.Builders;
4+
using Newtonsoft.Json;
45

56
namespace CaseManagement.CMMN.Persistence.EF.EntityConfigurations
67
{
@@ -13,11 +14,14 @@ public void Configure(EntityTypeBuilder<CaseEltInstance> builder)
1314
builder.Ignore(_ => _.ExitCriterions);
1415
builder.Ignore(_ => _.Incoming);
1516
builder.Ignore(_ => _.LatestTransition);
16-
builder.HasOne(_ => _.ManualActivationRule).WithOne().OnDelete(DeleteBehavior.Cascade);
17-
builder.HasOne(_ => _.RepetitionRule).WithOne().OnDelete(DeleteBehavior.Cascade);
1817
builder.HasMany(_ => _.TransitionHistories).WithOne().OnDelete(DeleteBehavior.Cascade);
19-
builder.HasMany(_ => _.Children).WithOne().OnDelete(DeleteBehavior.Cascade);
18+
builder.HasMany(_ => _.Children).WithOne();
2019
builder.HasMany(_ => _.Properties).WithOne().OnDelete(DeleteBehavior.Cascade);
20+
builder.HasMany(_ => _.Criterias).WithOne().OnDelete(DeleteBehavior.Cascade);
21+
builder.Property(_ => _.ManualActivationRule).HasConversion(v => JsonConvert.SerializeObject(v),
22+
v => v == null ? new ManualActivationRule() : JsonConvert.DeserializeObject<ManualActivationRule>(v));
23+
builder.Property(_ => _.RepetitionRule).HasConversion(v => JsonConvert.SerializeObject(v),
24+
v => v == null ? new RepetitionRule() : JsonConvert.DeserializeObject<RepetitionRule>(v));
2125
}
2226
}
2327
}

0 commit comments

Comments
 (0)