public ActionResult TopNResources([FromQuery(Name = "n")] int topN, [DateTimeModelBinder(DateFormat = "yyyyMMddHHmm"), FromQuery(Name = "from")] DateTime?fromDate, [DateTimeModelBinder(DateFormat = "yyyyMMddHHmm"), FromQuery(Name = "to")] DateTime?toDate, [FromQuery] string[] endpoints, [FromQuery] TopNResourceType type) { if (!fromDate.HasValue) { return(BadRequest("The parameter 'from' is mandatory")); } if (!toDate.HasValue) { return(BadRequest("The parameter 'to' is mandatory")); } return(Ok(DataCollectorThread.Instance.GetTopNResource(topN, fromDate.Value, toDate.Value, endpoints, type))); }
public dynamic GetTopNResource(int topN, DateTime fromDate, DateTime toDate, string[] endpoints, TopNResourceType type) { if (_dbRunningValues == null) { return(null); } var baseQuery = BuildBaseQuery(fromDate, toDate, endpoints); switch (type) { case TopNResourceType.Executions: return(TopN.TotalExecutions(baseQuery, topN)); case TopNResourceType.Duration: return(TopN.AvgDuration(baseQuery, topN)); case TopNResourceType.NetworkServerTime: return(TopN.AvgNetworkServerTime(baseQuery, topN)); case TopNResourceType.BytesReceived: return(TopN.AvgKBReceived(baseQuery, topN)); case TopNResourceType.ExceptionCnt: return(TopN.TotalExceptionCnt(baseQuery, topN)); case TopNResourceType.TimeoutCnt: return(TopN.TotalTimeouts(baseQuery, topN)); case TopNResourceType.TotalsVitals: return(TotalOverPeriod.TotalVitals(baseQuery, fromDate, toDate)); default: throw new Exception($"Type {type} not supported"); } }