88using Newtonsoft . Json . Linq ;
99using System ;
1010using System . Linq ;
11+ using System . Threading ;
1112using System . Threading . Tasks ;
1213
1314namespace CaseManagement . CMMN . Apis
@@ -55,6 +56,22 @@ public async Task<IActionResult> Search()
5556 return new OkObjectResult ( ToDto ( result ) ) ;
5657 }
5758
59+ [ HttpGet ( "performances" ) ]
60+ public async Task < IActionResult > GetPerformances ( )
61+ {
62+ var result = await _statisticQueryRepository . GetMachineNames ( ) ;
63+ return new OkObjectResult ( result ) ;
64+ }
65+
66+
67+ [ HttpGet ( "performances/.search" ) ]
68+ public async Task < IActionResult > SearchPerformances ( )
69+ {
70+ var query = HttpContext . Request . Query ;
71+ var result = await _statisticQueryRepository . FindPerformanceStatistics ( ExtractFindPerformanceParameter ( query ) ) ;
72+ return new OkObjectResult ( ToDto ( result ) ) ;
73+ }
74+
5875 private static JObject ToDto ( FindResponse < DailyStatisticAggregate > resp )
5976 {
6077 return new JObject
@@ -65,6 +82,16 @@ private static JObject ToDto(FindResponse<DailyStatisticAggregate> resp)
6582 { "content" , new JArray ( resp . Content . Select ( r => ToDto ( r ) ) ) }
6683 } ;
6784 }
85+ private static JObject ToDto ( FindResponse < PerformanceStatisticAggregate > resp )
86+ {
87+ return new JObject
88+ {
89+ { "start_index" , resp . StartIndex } ,
90+ { "total_length" , resp . TotalLength } ,
91+ { "count" , resp . Count } ,
92+ { "content" , new JArray ( resp . Content . Select ( r => ToDto ( r ) ) ) }
93+ } ;
94+ }
6895
6996 private static JObject ToDto ( DailyStatisticAggregate caseStatistic )
7097 {
@@ -84,6 +111,17 @@ private static JObject ToDto(DailyStatisticAggregate caseStatistic)
84111 } ;
85112 }
86113
114+ private static JObject ToDto ( PerformanceStatisticAggregate performanceStatistic )
115+ {
116+ return new JObject
117+ {
118+ { "datetime" , performanceStatistic . CaptureDateTime } ,
119+ { "machine_name" , performanceStatistic . MachineName } ,
120+ { "nb_working_threads" , performanceStatistic . NbWorkingThreads } ,
121+ { "memory_consumed_mb" , performanceStatistic . MemoryConsumedMB }
122+ } ;
123+ }
124+
87125 private static FindDailyStatisticsParameter ExtractFindParameter ( IQueryCollection query )
88126 {
89127 DateTime startDateTime ;
@@ -102,5 +140,30 @@ private static FindDailyStatisticsParameter ExtractFindParameter(IQueryCollectio
102140
103141 return parameter ;
104142 }
143+
144+ private static FindPerformanceStatisticsParameter ExtractFindPerformanceParameter ( IQueryCollection query )
145+ {
146+ string machineName ;
147+ DateTime startDateTime ;
148+ string groupBy ;
149+ var parameter = new FindPerformanceStatisticsParameter ( ) ;
150+ parameter . ExtractFindParameter ( query ) ;
151+ if ( query . TryGet ( "machine_name" , out machineName ) )
152+ {
153+ parameter . MachineName = machineName ;
154+ }
155+
156+ if ( query . TryGet ( "start_datetime" , out startDateTime ) )
157+ {
158+ parameter . StartDateTime = startDateTime ;
159+ }
160+
161+ if ( query . TryGet ( "group_by" , out groupBy ) )
162+ {
163+ parameter . GroupBy = groupBy ;
164+ }
165+
166+ return parameter ;
167+ }
105168 }
106169}
0 commit comments