Skip to content

Commit af2cf31

Browse files
Ticket #105 : CRUD Operation parameters / presentation parameters / assignment / deadlines / presentation elements
1 parent eb0ce39 commit af2cf31

60 files changed

Lines changed: 2414 additions & 670 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.HumanTask.AspNetCore/Apis/HumanTaskDefsController.cs

Lines changed: 113 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using CaseManagement.Common.Exceptions;
2+
using CaseManagement.HumanTask.Domains;
23
using CaseManagement.HumanTask.Exceptions;
34
using CaseManagement.HumanTask.HumanTaskDef.Commands;
45
using CaseManagement.HumanTask.HumanTaskDef.Queries;
@@ -94,13 +95,38 @@ public async Task<IActionResult> UpdateInfo(string id, [FromBody] UpdateHumanTas
9495
}
9596
}
9697

97-
[HttpPut("{id}/assignment")]
98-
public async Task<IActionResult> UpdatePeopleAssignment(string id, [FromBody] UpdateHumanTaskDefPeopleAssignmentCommand cmd, CancellationToken token)
98+
[HttpPost("{id}/assignments")]
99+
public async Task<IActionResult> AddPeopleAssignment(string id, [FromBody] AddHumanTaskDefPeopleAssignmentCommand cmd, CancellationToken token)
99100
{
100101
try
101102
{
102103
cmd.Id = id;
103104
var result = await _mediator.Send(cmd, token);
105+
return new OkObjectResult(result);
106+
}
107+
catch (UnknownHumanTaskDefException ex)
108+
{
109+
return this.ToError(new List<KeyValuePair<string, string>>
110+
{
111+
new KeyValuePair<string, string>("bad_request", ex.Message)
112+
}, HttpStatusCode.NotFound, Request);
113+
}
114+
catch (BadRequestException ex)
115+
{
116+
return this.ToError(new List<KeyValuePair<string, string>>
117+
{
118+
new KeyValuePair<string, string>("bad_request", ex.Message)
119+
}, HttpStatusCode.BadRequest, Request);
120+
}
121+
}
122+
123+
[HttpDelete("{id}/assignments/{assignmentId}")]
124+
public async Task<IActionResult> DeletePeopleAssignment(string id, string assignmentId, CancellationToken token)
125+
{
126+
try
127+
{
128+
var cmd = new DeleteHumanTaskDefPeopleAssignmentCommand { Id = id, AssignmentId = assignmentId };
129+
await _mediator.Send(cmd, token);
104130
return new NoContentResult();
105131
}
106132
catch (UnknownHumanTaskDefException ex)
@@ -110,6 +136,13 @@ public async Task<IActionResult> UpdatePeopleAssignment(string id, [FromBody] Up
110136
new KeyValuePair<string, string>("bad_request", ex.Message)
111137
}, HttpStatusCode.NotFound, Request);
112138
}
139+
catch (BadRequestException ex)
140+
{
141+
return this.ToError(new List<KeyValuePair<string, string>>
142+
{
143+
new KeyValuePair<string, string>("bad_request", ex.Message)
144+
}, HttpStatusCode.BadRequest, Request);
145+
}
113146
}
114147

115148
[HttpPost("{id}/parameters/input")]
@@ -212,8 +245,8 @@ public async Task<IActionResult> DeleteOutputParameter(string id, string name, C
212245
}
213246
}
214247

215-
[HttpPut("{id}/presentationelts")]
216-
public async Task<IActionResult> UpdatePresentationElements(string id, [FromBody] UpdateHumanTaskDefPresentationParametersCommand parameter, CancellationToken token)
248+
[HttpPost("{id}/presentationelts")]
249+
public async Task<IActionResult> AddPresentationElement(string id, [FromBody] AddHumanTaskDefPresentationElementCommand parameter, CancellationToken token)
217250
{
218251
try
219252
{
@@ -237,6 +270,82 @@ public async Task<IActionResult> UpdatePresentationElements(string id, [FromBody
237270
}
238271
}
239272

273+
274+
[HttpDelete("{id}/presentationelts/{usage}/{language}")]
275+
public async Task<IActionResult> AddPresentationElement(string id, PresentationElementUsages usage, string language, CancellationToken token)
276+
{
277+
try
278+
{
279+
var cmd = new DeleteHumanTaskDefPresentationElementCommand { Id = id, Usage = usage, Language = language };
280+
await _mediator.Send(cmd, token);
281+
return new NoContentResult();
282+
}
283+
catch (UnknownHumanTaskDefException ex)
284+
{
285+
return this.ToError(new List<KeyValuePair<string, string>>
286+
{
287+
new KeyValuePair<string, string>("bad_request", ex.Message)
288+
}, HttpStatusCode.NotFound, Request);
289+
}
290+
catch (BadRequestException ex)
291+
{
292+
return this.ToError(new List<KeyValuePair<string, string>>
293+
{
294+
new KeyValuePair<string, string>("bad_request", ex.Message)
295+
}, HttpStatusCode.BadRequest, Request);
296+
}
297+
}
298+
299+
[HttpPost("{id}/presentationparameters")]
300+
public async Task<IActionResult> AddPresentationParameter(string id, [FromBody] AddHumanTaskDefPresentationParameterCommand parameter, CancellationToken token)
301+
{
302+
try
303+
{
304+
parameter.Id = id;
305+
await _mediator.Send(parameter, token);
306+
return new NoContentResult();
307+
}
308+
catch (UnknownHumanTaskDefException ex)
309+
{
310+
return this.ToError(new List<KeyValuePair<string, string>>
311+
{
312+
new KeyValuePair<string, string>("bad_request", ex.Message)
313+
}, HttpStatusCode.NotFound, Request);
314+
}
315+
catch (BadRequestException ex)
316+
{
317+
return this.ToError(new List<KeyValuePair<string, string>>
318+
{
319+
new KeyValuePair<string, string>("bad_request", ex.Message)
320+
}, HttpStatusCode.BadRequest, Request);
321+
}
322+
}
323+
324+
[HttpDelete("{id}/presentationparameters/{name}")]
325+
public async Task<IActionResult> DeletePresentationParameter(string id, string name, CancellationToken token)
326+
{
327+
try
328+
{
329+
var parameter = new DeleteHumanTaskDefPresentationParameterCommand { Id = id, Name = name };
330+
await _mediator.Send(parameter, token);
331+
return new NoContentResult();
332+
}
333+
catch (UnknownHumanTaskDefException ex)
334+
{
335+
return this.ToError(new List<KeyValuePair<string, string>>
336+
{
337+
new KeyValuePair<string, string>("bad_request", ex.Message)
338+
}, HttpStatusCode.NotFound, Request);
339+
}
340+
catch (BadRequestException ex)
341+
{
342+
return this.ToError(new List<KeyValuePair<string, string>>
343+
{
344+
new KeyValuePair<string, string>("bad_request", ex.Message)
345+
}, HttpStatusCode.BadRequest, Request);
346+
}
347+
}
348+
240349
[HttpPost("{id}/deadlines/start")]
241350
public async Task<IActionResult> AddStartDeadline(string id, [FromBody] AddHumanTaskDefStartDeadLineCommand cmd, CancellationToken token)
242351
{

src/CaseManagement.HumanTask/Builders/HumanTaskDefBuilder.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,7 @@ public HumanTaskDefBuilder SetTaskInitiatorUserIdentifiers(ICollection<string> u
165165
{
166166
_humanTaskDef.PeopleAssignments.Add(new PeopleAssignmentDefinition
167167
{
168+
Id = Guid.NewGuid().ToString(),
168169
Usage = PeopleAssignmentUsages.TASKINITIATOR,
169170
Type = PeopleAssignmentTypes.USERIDENTIFIERS,
170171
Value = userIdentifier
@@ -184,6 +185,7 @@ public HumanTaskDefBuilder SetPotentialOwnerGroupNames(ICollection<string> group
184185
{
185186
_humanTaskDef.PeopleAssignments.Add(new PeopleAssignmentDefinition
186187
{
188+
Id = Guid.NewGuid().ToString(),
187189
Usage = PeopleAssignmentUsages.POTENTIALOWNER,
188190
Type = PeopleAssignmentTypes.GROUPNAMES,
189191
Value = groupName
@@ -199,6 +201,7 @@ public HumanTaskDefBuilder SetPotentialOwnerUserIdentifiers(ICollection<string>
199201
{
200202
_humanTaskDef.PeopleAssignments.Add(new PeopleAssignmentDefinition
201203
{
204+
Id = Guid.NewGuid().ToString(),
202205
Usage = PeopleAssignmentUsages.POTENTIALOWNER,
203206
Type = PeopleAssignmentTypes.USERIDENTIFIERS,
204207
Value = userIdentifier
@@ -218,6 +221,7 @@ public HumanTaskDefBuilder SetBusinessAdministratorUserIdentifiers(ICollection<s
218221
{
219222
_humanTaskDef.PeopleAssignments.Add(new PeopleAssignmentDefinition
220223
{
224+
Id = Guid.NewGuid().ToString(),
221225
Usage = PeopleAssignmentUsages.BUSINESSADMINISTRATOR,
222226
Type = PeopleAssignmentTypes.USERIDENTIFIERS,
223227
Value = userIdentifier

src/CaseManagement.HumanTask/Domains/Common/Definition/PeopleAssignmentDefinition.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ public enum PeopleAssignmentUsages
1414

1515
public class PeopleAssignmentDefinition : ICloneable
1616
{
17-
public long Id { get; set; }
17+
public string Id { get; set; }
1818
public PeopleAssignmentTypes Type { get; set; }
1919
public PeopleAssignmentUsages Usage { get; set; }
2020
public string Value { get; set; }
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
using CaseManagement.Common.Domains;
2+
using System;
3+
using System.Diagnostics;
4+
5+
namespace CaseManagement.HumanTask.Domains.HumanTaskDef.Events
6+
{
7+
[DebuggerDisplay("People is assigned")]
8+
public class HumanTaskDefPeopleAssignedEvent : DomainEvent
9+
{
10+
public HumanTaskDefPeopleAssignedEvent(string id, string aggregateId, int version, PeopleAssignmentDefinition peopleAssignment, DateTime createDateTime) : base(id, aggregateId, version)
11+
{
12+
PeopleAssignment = peopleAssignment;
13+
CreateDateTime = createDateTime;
14+
}
15+
16+
public PeopleAssignmentDefinition PeopleAssignment { get; set; }
17+
public DateTime CreateDateTime { get; set; }
18+
}
19+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
using CaseManagement.Common.Domains;
2+
using System;
3+
using System.Diagnostics;
4+
5+
namespace CaseManagement.HumanTask.Domains.HumanTaskDef.Events
6+
{
7+
[DebuggerDisplay("People assignment is removed")]
8+
public class HumanTaskDefPeopleAssignmentRemovedEvent : DomainEvent
9+
{
10+
public HumanTaskDefPeopleAssignmentRemovedEvent(string id, string aggregateId, int version, string assignmentId, DateTime removedDateTime) : base(id, aggregateId, version)
11+
{
12+
AssignmentId = assignmentId;
13+
RemovedDateTime = removedDateTime;
14+
}
15+
16+
public string AssignmentId { get; set; }
17+
public DateTime RemovedDateTime { get; set; }
18+
}
19+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
using CaseManagement.Common.Domains;
2+
using System;
3+
using System.Diagnostics;
4+
5+
namespace CaseManagement.HumanTask.Domains.HumanTaskDef.Events
6+
{
7+
[DebuggerDisplay("Add presentation element")]
8+
public class HumanTaskDefPresentationElementAddedEvent : DomainEvent
9+
{
10+
public HumanTaskDefPresentationElementAddedEvent(string id, string aggregateId, int version, PresentationElementDefinition presentationElement, DateTime receptionDate) : base(id, aggregateId, version)
11+
{
12+
PresentationElement = presentationElement;
13+
ReceptionDate = receptionDate;
14+
}
15+
16+
public PresentationElementDefinition PresentationElement { get; set; }
17+
public DateTime ReceptionDate { get; set; }
18+
}
19+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
using CaseManagement.Common.Domains;
2+
using System;
3+
using System.Diagnostics;
4+
5+
namespace CaseManagement.HumanTask.Domains.HumanTaskDef.Events
6+
{
7+
[DebuggerDisplay("Presentation element is removed")]
8+
public class HumanTaskDefPresentationElementRemovedEvent : DomainEvent
9+
{
10+
public HumanTaskDefPresentationElementRemovedEvent(string id, string aggregateId, int version, PresentationElementUsages usage, string language, DateTime receptionDateTime) : base(id, aggregateId, version)
11+
{
12+
Usage = usage;
13+
Language = language;
14+
ReceptionDateTime = receptionDateTime;
15+
}
16+
17+
public PresentationElementUsages Usage { get; set; }
18+
public string Language { get; set; }
19+
public DateTime ReceptionDateTime { get; set; }
20+
}
21+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
using CaseManagement.Common.Domains;
2+
using System;
3+
using System.Diagnostics;
4+
5+
namespace CaseManagement.HumanTask.Domains.HumanTaskDef.Events
6+
{
7+
[DebuggerDisplay("Add presentation parameter")]
8+
public class HumanTaskPresentationParameterAddedEvent : DomainEvent
9+
{
10+
public HumanTaskPresentationParameterAddedEvent(string id, string aggregateId, int version, PresentationParameter presentationParameter, DateTime createDateTime) : base(id, aggregateId, version)
11+
{
12+
PresentationParameter = presentationParameter;
13+
CreateDateTime = createDateTime;
14+
}
15+
16+
public PresentationParameter PresentationParameter { get; set; }
17+
public DateTime CreateDateTime { get; set; }
18+
}
19+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
using CaseManagement.Common.Domains;
2+
using System;
3+
using System.Diagnostics;
4+
5+
namespace CaseManagement.HumanTask.Domains.HumanTaskDef.Events
6+
{
7+
[DebuggerDisplay("Presentation parameter '{Name}' is removed")]
8+
public class HumanTaskPresentationParameterRemovedEvent : DomainEvent
9+
{
10+
public HumanTaskPresentationParameterRemovedEvent(string id, string aggregateId, int version, string name, DateTime receptionDate) : base(id, aggregateId, version)
11+
{
12+
Name = name;
13+
ReceptionDate = receptionDate;
14+
}
15+
16+
public string Name { get; set; }
17+
public DateTime ReceptionDate { get; set; }
18+
}
19+
}

0 commit comments

Comments
 (0)