Skip to content

Commit 8e48a3b

Browse files
Ticket #92 : Fix BPMN EF project
1 parent 050be3c commit 8e48a3b

62 files changed

Lines changed: 865 additions & 126 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.Common/MessageToken.cs

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,20 @@
55

66
namespace CaseManagement.BPMN.Common
77
{
8+
[Serializable]
89
public class MessageToken : ICloneable
910
{
1011
public string Name { get; set; }
11-
public JObject MessageContent { get; set; }
12+
public string MessageContent { get; set; }
13+
14+
[field: NonSerialized]
15+
public JObject JObjMessageContent
16+
{
17+
get
18+
{
19+
return string.IsNullOrWhiteSpace(MessageContent) ? new JObject() : JObject.Parse(MessageContent);
20+
}
21+
}
1222

1323
private static MessageToken Deserialize(string json)
1424
{
@@ -42,7 +52,7 @@ public static MessageToken EmptyMessage()
4252
return new MessageToken();
4353
}
4454

45-
public static MessageToken NewMessage(string name, JObject content)
55+
public static MessageToken NewMessage(string name, string content)
4656
{
4757
return new MessageToken
4858
{

src/CaseManagement.BPMN.Host/Delegates/GetWeatherInformationDelegate.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ public Task<ICollection<MessageToken>> Execute(ICollection<MessageToken> incomin
1919
{
2020
{ "city", "Bruxelles" },
2121
{ "degree", degree }
22-
}));
22+
}.ToString()));
2323
return Task.FromResult(result);
2424
}
2525
}

src/CaseManagement.BPMN.Host/Startup.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerF
8282
app.UseSwagger();
8383
app.UseSwaggerUI(c =>
8484
{
85-
c.SwaggerEndpoint("/swagger/v1/swagger.json", "CaseManagement API V1");
85+
c.SwaggerEndpoint("/swagger/v1/swagger.json", "BPMN API V1");
8686
});
8787
app.UseAuthentication();
8888
app.UseCors("AllowAll");

src/CaseManagement.BPMN.Persistence.EF/BPMNDbContext.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
using CaseManagement.BPMN.Persistence.EF.Models;
22
using Microsoft.EntityFrameworkCore;
3-
using System;
4-
using System.Threading.Tasks;
53

64
namespace CaseManagement.BPMN.Persistence.EF
75
{

src/CaseManagement.BPMN.Persistence.EF/Configuration/ExecutionPathModelConfiguration.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ public class ExecutionPathModelConfiguration : IEntityTypeConfiguration<Executio
99
public void Configure(EntityTypeBuilder<ExecutionPathModel> builder)
1010
{
1111
builder.HasKey(_ => _.Id);
12-
builder.Property(_ => _.Id).ValueGeneratedOnAdd();
12+
builder.Property(_ => _.Id).ValueGeneratedNever();
1313
builder.HasMany(_ => _.Pointers).WithOne().OnDelete(DeleteBehavior.Cascade);
1414
}
1515
}

src/CaseManagement.BPMN.Persistence.EF/Configuration/ExecutionPointerModelConfiguration.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ public class ExecutionPointerModelConfiguration : IEntityTypeConfiguration<Execu
99
public void Configure(EntityTypeBuilder<ExecutionPointerModel> builder)
1010
{
1111
builder.HasKey(_ => _.Id);
12-
builder.Property(_ => _.Id).ValueGeneratedOnAdd();
12+
builder.Property(_ => _.Id).ValueGeneratedNever();
1313
builder.Ignore(_ => _.Incoming);
1414
builder.Ignore(_ => _.Outgoing);
1515
builder.HasMany(_ => _.Tokens).WithOne().OnDelete(DeleteBehavior.Cascade);

src/CaseManagement.BPMN.Persistence.EF/DomainMapping/ProcessInstanceMapper.cs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ public static ProcessInstanceAggregate ToDomain(this ProcessInstanceModel proces
2121
CreateDateTime = processInstance.CreateDateTime,
2222
ProcessFileName = processInstance.ProcessFileName,
2323
Version = processInstance.Version,
24+
NameIdentifier = processInstance.NameIdentifier,
2425
UpdateDateTime = processInstance.UpdateDateTime,
2526
Status = (ProcessInstanceStatus)processInstance.Status,
2627
ElementInstances = new ConcurrentBag<FlowNodeInstance>(processInstance.ElementInstances.Select(_ => _.ToDomain()).ToList()),
@@ -85,7 +86,7 @@ public static StateTransitionNotification ToDomain(this StateTransitionTokenMode
8586
{
8687
return new StateTransitionNotification(stateTransition.Id.ToString())
8788
{
88-
Content = stateTransition.SerializedContent == null ? null : JObject.Parse(stateTransition.SerializedContent),
89+
Content = stateTransition.SerializedContent,
8990
FlowNodeInstanceId = stateTransition.FlowNodeInstanceId,
9091
State = stateTransition.State
9192
};
@@ -105,7 +106,7 @@ public static ExecutionPointer ToDomain(this ExecutionPointerModel executionPoin
105106
{
106107
return new ExecutionPointer
107108
{
108-
Id = executionPointer.Id.ToString(),
109+
Id = executionPointer.Id,
109110
FlowNodeId = executionPointer.FlowNodeId,
110111
IsActive = executionPointer.IsActive,
111112
InstanceFlowNodeId = executionPointer.InstanceFlowNodeId,
@@ -118,7 +119,7 @@ public static MessageToken ToDomain(this MessageTokenModel messageToken)
118119
{
119120
return new MessageToken
120121
{
121-
MessageContent = messageToken.SerializedContent == null ? null : JObject.Parse(messageToken.SerializedContent),
122+
MessageContent = messageToken.SerializedContent,
122123
Name = messageToken.Name
123124
};
124125
}
@@ -247,6 +248,7 @@ public static ExecutionPathModel ToModel(this ExecutionPath executionPath)
247248
{
248249
return new ExecutionPathModel
249250
{
251+
Id = executionPath.Id,
250252
CreateDateTime = executionPath.CreateDateTime,
251253
Pointers = executionPath.Pointers.Select(_ => _.ToModel()).ToList()
252254
};
@@ -258,6 +260,7 @@ public static ExecutionPointerModel ToModel(this ExecutionPointer executionPoint
258260
tokens.AddRange(executionPointer.Outgoing.Select(_ => _.ToModel(MessageTokenDirections.OUTGOING)).ToList());
259261
return new ExecutionPointerModel
260262
{
263+
Id = executionPointer.Id,
261264
FlowNodeId = executionPointer.FlowNodeId,
262265
IsActive = executionPointer.IsActive,
263266
InstanceFlowNodeId = executionPointer.InstanceFlowNodeId,

src/CaseManagement.BPMN.Persistence.EF/Models/ExecutionPointerModel.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ namespace CaseManagement.BPMN.Persistence.EF.Models
55
{
66
public class ExecutionPointerModel
77
{
8-
public long Id { get; set; }
8+
public string Id { get; set; }
99
public string ExecutionPathId { get; set; }
1010
public string InstanceFlowNodeId { get; set; }
1111
public string FlowNodeId { get; set; }

src/CaseManagement.BPMN.Persistence.EF/Models/ProcessInstanceModel.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ public class ProcessInstanceModel
99
public int Version { get; set; }
1010
public int Status { get; set; }
1111
public string ProcessFileId { get; set; }
12+
public string NameIdentifier { get; set; }
1213
public string ProcessFileName { get; set; }
1314
public DateTime CreateDateTime { get; set; }
1415
public DateTime UpdateDateTime { get; set; }

src/CaseManagement.BPMN.Persistence.EF/Persistence/ProcessFileQueryRepository.cs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -38,25 +38,25 @@ public async Task<ProcessFileAggregate> Get(string id, CancellationToken token)
3838
public async Task<FindResponse<ProcessFileAggregate>> Find(FindProcessFilesParameter parameter, CancellationToken token)
3939
{
4040
IQueryable<ProcessFileModel> result = _dbContext.ProcessFiles.AsQueryable();
41-
if (parameter.TakeLatest)
42-
{
43-
result = result.OrderByDescending(r => r.Version);
44-
result = result.GroupBy(r => r.FileId).Select(r => r.First());
45-
}
46-
4741
if (MAPPING_PROCESSFILE_TO_PROPERTYNAME.ContainsKey(parameter.OrderBy))
4842
{
4943
result = result.InvokeOrderBy(MAPPING_PROCESSFILE_TO_PROPERTYNAME[parameter.OrderBy], parameter.Order);
5044
}
5145

5246
int totalLength = await result.CountAsync(token);
5347
result = result.Skip(parameter.StartIndex).Take(parameter.Count);
48+
var content = await result.ToListAsync(token);
49+
if (parameter.TakeLatest)
50+
{
51+
content = content.OrderByDescending(r => r.Version).GroupBy(r => r.FileId).Select(r => r.First()).ToList();
52+
}
53+
5454
return new FindResponse<ProcessFileAggregate>
5555
{
5656
StartIndex = parameter.StartIndex,
5757
Count = parameter.Count,
5858
TotalLength = totalLength,
59-
Content = (await result.ToListAsync(token)).Select(_ => _.ToDomain()).ToList()
59+
Content = content.Select(_ => _.ToDomain()).ToList()
6060
};
6161
}
6262
}

0 commit comments

Comments
 (0)