1- using CaseManagement . CMMN . Persistence ;
1+ using CaseManagement . CMMN . Extensions ;
2+ using CaseManagement . CMMN . Parser ;
3+ using CaseManagement . CMMN . Persistence ;
4+ using CaseManagement . Workflow . Persistence . Parameters ;
5+ using CaseManagement . Workflow . Persistence . Responses ;
6+ using Microsoft . AspNetCore . Http ;
27using Microsoft . AspNetCore . Mvc ;
38using Newtonsoft . Json . Linq ;
49using System . Linq ;
@@ -16,16 +21,12 @@ public CaseDefinitionsController(ICMMNDefinitionsQueryRepository queryRepository
1621 _queryRepository = queryRepository ;
1722 }
1823
19- [ HttpGet ]
24+ [ HttpGet ( ".search" ) ]
2025 public async Task < IActionResult > Get ( )
2126 {
22- var result = await _queryRepository . GetAll ( ) ;
23- return new OkObjectResult ( new JArray ( result . Select ( r => new JObject
24- {
25- { "id" , r . id } ,
26- { "name" , r . name } ,
27- { "create_datetime" , r . creationDate }
28- } ) ) ) ;
27+ var query = HttpContext . Request . Query ;
28+ var result = await _queryRepository . Find ( ExtractFindParameter ( query ) ) ;
29+ return new OkObjectResult ( ToDto ( result ) ) ;
2930 }
3031
3132 [ HttpGet ( "{id}" ) ]
@@ -52,31 +53,61 @@ public async Task<IActionResult> GetCases(string id)
5253 return new OkObjectResult ( result . @case ) ;
5354 }
5455
55- private static JObject ToDto ( tDefinitions def )
56+ private static BaseFindParameter ExtractFindParameter ( IQueryCollection query )
5657 {
57- var result = new JObject
58+ int startIndex ;
59+ int count ;
60+ string orderBy ;
61+ FindOrders findOrder ;
62+ var parameter = new BaseFindParameter ( ) ;
63+ if ( query . TryGet ( "start_index" , out startIndex ) )
5864 {
59- { "id" , def . id } ,
60- { "name" , def . name } ,
61- { "create_datetime" , def . creationDate } ,
62- } ;
63- result . Add ( "cases" , ToDto ( def . @case ) ) ;
64- return result ;
65+ parameter . StartIndex = startIndex ;
66+ }
67+
68+ if ( query . TryGet ( "count" , out count ) )
69+ {
70+ parameter . Count = count ;
71+ }
72+
73+ if ( query . TryGet ( "order_by" , out orderBy ) )
74+ {
75+ parameter . OrderBy = orderBy ;
76+ }
77+
78+ if ( query . TryGet ( "order" , out findOrder ) )
79+ {
80+ parameter . Order = findOrder ;
81+ }
82+
83+ return parameter ;
6584 }
6685
67- private static JArray ToDto ( tCase [ ] cases )
86+ private static JObject ToDto ( FindResponse < tDefinitions > resp )
6887 {
69- var cmmnCases = new JArray ( ) ;
70- foreach ( var cmmnCase in cases )
88+ return new JObject
7189 {
72- cmmnCases . Add ( new JObject
90+ { "start_index" , resp . StartIndex } ,
91+ { "total_length" , resp . TotalLength } ,
92+ { "count" , resp . Count } ,
93+ { "content" , new JArray ( resp . Content . Select ( r => new JObject
7394 {
74- { "id" , cmmnCase . id } ,
75- { "name" , cmmnCase . name }
76- } ) ;
77- }
95+ { "id" , r . id } ,
96+ { "name" , r . name } ,
97+ { "create_datetime" , r . creationDate }
98+ } ) ) }
99+ } ;
100+ }
78101
79- return cmmnCases ;
102+ private static JObject ToDto ( tDefinitions def )
103+ {
104+ return new JObject
105+ {
106+ { "id" , def . id } ,
107+ { "name" , def . name } ,
108+ { "create_datetime" , def . creationDate } ,
109+ { "xml" , new CMMNParser ( ) . Serialize ( def ) }
110+ } ;
80111 }
81112 }
82113}
0 commit comments