コード例 #1
0
        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);
        }
コード例 #2
0
 public GetMethodDurationorCountResponse GetTopMethodDurationOrCount(GetMethodDurationOrCountRequest request)
 {
     return(_hbArchiveProcessor.DurationOrCount(request));
 }