public GetMethodDurationorCountResponse DurationOrCount(GetMethodDurationOrCountRequest request) { var today = DateTime.Now; var response = new GetMethodDurationorCountResponse(); response.Details = new List <AverageOrDurationDetails>(); var list = _hbArchiveItems.Where( x => x.ArchieveDate.Day == today.Day && x.MethodName == request.MethodName && x.ClientMachine == request.ServerName && x.ApplicationName == request.ServiceName); foreach (var hbArchieveItem in list) { response.Details.Add(new AverageOrDurationDetails() { AverageDuration = hbArchieveItem.AverageDuration, ExecutionTime = hbArchieveItem.ArchieveDate, ExecutionCount = hbArchieveItem.ExecutionCount }); } if (request.DataType == DataTypes.Average) { response.Details = response.Details.OrderByDescending(or => or.AverageDuration).Take(request.MethodNumber).ToList(); } else if (request.DataType == DataTypes.ExecutionCount) { response.Details = response.Details.OrderByDescending(or => or.ExecutionCount).Take(request.MethodNumber).ToList(); } return(response); }
public GetMethodDurationorCountResponse GetTopMethodDurationOrCount(GetMethodDurationOrCountRequest request) { return(_hbArchiveProcessor.DurationOrCount(request)); }