From 4472c00c6f01f2be38b60b7695fa92ad57a37a59 Mon Sep 17 00:00:00 2001 From: Kiran Challa Date: Thu, 17 May 2018 11:03:06 -0700 Subject: [PATCH] PR feedback fixes for logging requestpredicate shortcircuit logging --- .../Internal/MvcCoreLoggerExtensions.cs | 25 ++++++++++--------- .../ModelBinding/ParameterBinder.cs | 15 ++++++----- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/src/Microsoft.AspNetCore.Mvc.Core/Internal/MvcCoreLoggerExtensions.cs b/src/Microsoft.AspNetCore.Mvc.Core/Internal/MvcCoreLoggerExtensions.cs index e81af7df95..db626eb4a5 100644 --- a/src/Microsoft.AspNetCore.Mvc.Core/Internal/MvcCoreLoggerExtensions.cs +++ b/src/Microsoft.AspNetCore.Mvc.Core/Internal/MvcCoreLoggerExtensions.cs @@ -642,12 +642,12 @@ namespace Microsoft.AspNetCore.Mvc.Internal _parameterBinderRequestPredicateShortCircuitOfProperty = LoggerMessage.Define( LogLevel.Debug, 47, - "Skipped binding property '{PropertyContainerType}.{PropertyName}' since it's binding information disallowed it for the current request."); + "Skipped binding property '{PropertyContainerType}.{PropertyName}' since its binding information disallowed it for the current request."); _parameterBinderRequestPredicateShortCircuitOfParameter = LoggerMessage.Define( LogLevel.Debug, 48, - "Skipped binding parameter '{ParameterName}' since it's binding information disallowed it for the current request."); + "Skipped binding parameter '{ParameterName}' since its binding information disallowed it for the current request."); } public static void RegisteredOutputFormatters(this ILogger logger, IEnumerable outputFormatters) @@ -1324,14 +1324,13 @@ namespace Microsoft.AspNetCore.Mvc.Internal public static void AttemptingToBindParameterOrProperty( this ILogger logger, ParameterDescriptor parameter, - ModelBindingContext bindingContext) + ModelMetadata modelMetadata) { if (!logger.IsEnabled(LogLevel.Debug)) { return; } - var modelMetadata = bindingContext.ModelMetadata; switch (modelMetadata.MetadataKind) { case ModelMetadataKind.Parameter: @@ -1367,14 +1366,13 @@ namespace Microsoft.AspNetCore.Mvc.Internal public static void DoneAttemptingToBindParameterOrProperty( this ILogger logger, ParameterDescriptor parameter, - ModelBindingContext bindingContext) + ModelMetadata modelMetadata) { if (!logger.IsEnabled(LogLevel.Debug)) { return; } - var modelMetadata = bindingContext.ModelMetadata; switch (modelMetadata.MetadataKind) { case ModelMetadataKind.Parameter: @@ -1410,14 +1408,13 @@ namespace Microsoft.AspNetCore.Mvc.Internal public static void AttemptingToValidateParameterOrProperty( this ILogger logger, ParameterDescriptor parameter, - ModelBindingContext bindingContext) + ModelMetadata modelMetadata) { if (!logger.IsEnabled(LogLevel.Debug)) { return; } - var modelMetadata = bindingContext.ModelMetadata; switch (modelMetadata.MetadataKind) { case ModelMetadataKind.Parameter: @@ -1454,14 +1451,13 @@ namespace Microsoft.AspNetCore.Mvc.Internal public static void DoneAttemptingToValidateParameterOrProperty( this ILogger logger, ParameterDescriptor parameter, - ModelBindingContext bindingContext) + ModelMetadata modelMetadata) { if (!logger.IsEnabled(LogLevel.Debug)) { return; } - var modelMetadata = bindingContext.ModelMetadata; switch (modelMetadata.MetadataKind) { case ModelMetadataKind.Parameter: @@ -1540,9 +1536,14 @@ namespace Microsoft.AspNetCore.Mvc.Internal public static void ParameterBinderRequestPredicateShortCircuit( this ILogger logger, - ModelMetadata modelMetadata, - ParameterDescriptor parameter) + ParameterDescriptor parameter, + ModelMetadata modelMetadata) { + if (!logger.IsEnabled(LogLevel.Debug)) + { + return; + } + switch (modelMetadata.MetadataKind) { case ModelMetadataKind.Parameter: diff --git a/src/Microsoft.AspNetCore.Mvc.Core/ModelBinding/ParameterBinder.cs b/src/Microsoft.AspNetCore.Mvc.Core/ModelBinding/ParameterBinder.cs index 542ae37902..973058609b 100644 --- a/src/Microsoft.AspNetCore.Mvc.Core/ModelBinding/ParameterBinder.cs +++ b/src/Microsoft.AspNetCore.Mvc.Core/ModelBinding/ParameterBinder.cs @@ -203,10 +203,11 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding throw new ArgumentNullException(nameof(metadata)); } + Logger.AttemptingToBindParameterOrProperty(parameter, metadata); + if (parameter.BindingInfo?.RequestPredicate?.Invoke(actionContext) == false) { - Logger.ParameterBinderRequestPredicateShortCircuit(metadata, parameter); - + Logger.ParameterBinderRequestPredicateShortCircuit(parameter, metadata); return ModelBindingResult.Failed(); } @@ -218,8 +219,6 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding parameter.Name); modelBindingContext.Model = value; - Logger.AttemptingToBindParameterOrProperty(parameter, modelBindingContext); - var parameterModelName = parameter.BindingInfo?.BinderModelName ?? metadata.BinderModelName; if (parameterModelName != null) { @@ -239,14 +238,14 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding await modelBinder.BindModelAsync(modelBindingContext); - Logger.DoneAttemptingToBindParameterOrProperty(parameter, modelBindingContext); + Logger.DoneAttemptingToBindParameterOrProperty(parameter, metadata); var modelBindingResult = modelBindingContext.Result; if (_mvcOptions.AllowValidatingTopLevelNodes && _objectModelValidator is ObjectModelValidator baseObjectValidator) { - Logger.AttemptingToValidateParameterOrProperty(parameter, modelBindingContext); + Logger.AttemptingToValidateParameterOrProperty(parameter, metadata); EnforceBindRequiredAndValidate( baseObjectValidator, @@ -256,7 +255,7 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding modelBindingContext, modelBindingResult); - Logger.DoneAttemptingToValidateParameterOrProperty(parameter, modelBindingContext); + Logger.DoneAttemptingToValidateParameterOrProperty(parameter, metadata); } else { @@ -321,7 +320,7 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding // and we ended up with an empty prefix. modelName = modelBindingContext.FieldName; } - + // Run validation, we expect this to validate [Required]. baseObjectValidator.Validate( actionContext,