internal static void InterceptControllerWithProfilerOnActionExecuted(ActionExecutedContext context, TimeMeasureOptions options, TimeMeasureProfiler profiler) { profiler.Timer.Stop(); if (options.TimeMeasureCompletedThreshold == TimeSpan.Zero || profiler.Elapsed > options.TimeMeasureCompletedThreshold) { TimeMeasure.CompletedCallback?.Invoke(profiler); } }
internal static void InterceptControllerWithProfilerOnActionExecuting(ActionExecutingContext context, TimeMeasureOptions options, TimeMeasureProfiler profiler) { profiler.Timer.Start(); var descriptor = context.ActionDescriptor as ControllerActionDescriptor; if (descriptor != null) { var expectedObjects = context.ParseRuntimeParameters(descriptor); var verifiedObjects = context.ActionArguments.Values.ToArray(); if (verifiedObjects.Length == expectedObjects.Length) { expectedObjects = verifiedObjects; } var md = options.MethodDescriptor?.Invoke() ?? context.ParseMethodDescriptor(descriptor); profiler.Member = md.ToString(); profiler.Data = md.MergeParameters(options.RuntimeParameters ?? expectedObjects); } }