| File: ModelBinding\Metadata\DefaultModelBindingMessageProvider.cs | Web Access |
| Project: src\aspnetcore\src\Mvc\Mvc.Core\src\Microsoft.AspNetCore.Mvc.Core.csproj (Microsoft.AspNetCore.Mvc.Core) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. #nullable enable using System.Diagnostics.CodeAnalysis; using Microsoft.AspNetCore.Mvc.Core; namespace Microsoft.AspNetCore.Mvc.ModelBinding.Metadata; /// <summary> /// Read / write <see cref="ModelBindingMessageProvider"/> implementation. /// </summary> public class DefaultModelBindingMessageProvider : ModelBindingMessageProvider { private Func<string, string> _missingBindRequiredValueAccessor; private Func<string> _missingKeyOrValueAccessor; private Func<string> _missingRequestBodyRequiredValueAccessor; private Func<string, string> _valueMustNotBeNullAccessor; private Func<string, string, string> _attemptedValueIsInvalidAccessor; private Func<string, string> _nonPropertyAttemptedValueIsInvalidAccessor; private Func<string, string> _unknownValueIsInvalidAccessor; private Func<string> _nonPropertyUnknownValueIsInvalidAccessor; private Func<string, string> _valueIsInvalidAccessor; private Func<string, string> _valueMustBeANumberAccessor; private Func<string> _nonPropertyValueMustBeANumberAccessor; /// <summary> /// Initializes a new instance of the <see cref="DefaultModelBindingMessageProvider"/> class. /// </summary> public DefaultModelBindingMessageProvider() { SetMissingBindRequiredValueAccessor(Resources.FormatModelBinding_MissingBindRequiredMember); SetMissingKeyOrValueAccessor(() => Resources.KeyValuePair_BothKeyAndValueMustBePresent); SetMissingRequestBodyRequiredValueAccessor(() => Resources.ModelBinding_MissingRequestBodyRequiredMember); SetValueMustNotBeNullAccessor(Resources.FormatModelBinding_NullValueNotValid); SetAttemptedValueIsInvalidAccessor(Resources.FormatModelState_AttemptedValueIsInvalid); SetNonPropertyAttemptedValueIsInvalidAccessor(Resources.FormatModelState_NonPropertyAttemptedValueIsInvalid); SetUnknownValueIsInvalidAccessor(Resources.FormatModelState_UnknownValueIsInvalid); SetNonPropertyUnknownValueIsInvalidAccessor(() => Resources.ModelState_NonPropertyUnknownValueIsInvalid); SetValueIsInvalidAccessor(Resources.FormatHtmlGeneration_ValueIsInvalid); SetValueMustBeANumberAccessor(Resources.FormatHtmlGeneration_ValueMustBeNumber); SetNonPropertyValueMustBeANumberAccessor(() => Resources.HtmlGeneration_NonPropertyValueMustBeNumber); } /// <summary> /// Initializes a new instance of the <see cref="DefaultModelBindingMessageProvider"/> class based on /// <paramref name="originalProvider"/>. /// </summary> /// <param name="originalProvider">The <see cref="DefaultModelBindingMessageProvider"/> to duplicate.</param> public DefaultModelBindingMessageProvider(DefaultModelBindingMessageProvider originalProvider) { ArgumentNullException.ThrowIfNull(originalProvider); SetMissingBindRequiredValueAccessor(originalProvider.MissingBindRequiredValueAccessor); SetMissingKeyOrValueAccessor(originalProvider.MissingKeyOrValueAccessor); SetMissingRequestBodyRequiredValueAccessor(originalProvider.MissingRequestBodyRequiredValueAccessor); SetValueMustNotBeNullAccessor(originalProvider.ValueMustNotBeNullAccessor); SetAttemptedValueIsInvalidAccessor(originalProvider.AttemptedValueIsInvalidAccessor); SetNonPropertyAttemptedValueIsInvalidAccessor(originalProvider.NonPropertyAttemptedValueIsInvalidAccessor); SetUnknownValueIsInvalidAccessor(originalProvider.UnknownValueIsInvalidAccessor); SetNonPropertyUnknownValueIsInvalidAccessor(originalProvider.NonPropertyUnknownValueIsInvalidAccessor); SetValueIsInvalidAccessor(originalProvider.ValueIsInvalidAccessor); SetValueMustBeANumberAccessor(originalProvider.ValueMustBeANumberAccessor); SetNonPropertyValueMustBeANumberAccessor(originalProvider.NonPropertyValueMustBeANumberAccessor); } /// <inheritdoc/> public override Func<string, string> MissingBindRequiredValueAccessor => _missingBindRequiredValueAccessor; /// <summary> /// Sets the <see cref="MissingBindRequiredValueAccessor"/> property. /// </summary> /// <param name="missingBindRequiredValueAccessor">The value to set.</param> [MemberNotNull(nameof(_missingBindRequiredValueAccessor))] public void SetMissingBindRequiredValueAccessor(Func<string, string> missingBindRequiredValueAccessor) { ArgumentNullException.ThrowIfNull(missingBindRequiredValueAccessor); _missingBindRequiredValueAccessor = missingBindRequiredValueAccessor; } /// <inheritdoc/> public override Func<string> MissingKeyOrValueAccessor => _missingKeyOrValueAccessor; /// <summary> /// Sets the <see cref="MissingKeyOrValueAccessor"/> property. /// </summary> /// <param name="missingKeyOrValueAccessor">The value to set.</param> [MemberNotNull(nameof(_missingKeyOrValueAccessor))] public void SetMissingKeyOrValueAccessor(Func<string> missingKeyOrValueAccessor) { ArgumentNullException.ThrowIfNull(missingKeyOrValueAccessor); _missingKeyOrValueAccessor = missingKeyOrValueAccessor; } /// <inheritdoc/> public override Func<string> MissingRequestBodyRequiredValueAccessor => _missingRequestBodyRequiredValueAccessor; /// <summary> /// Sets the <see cref="MissingRequestBodyRequiredValueAccessor"/> property. /// </summary> /// <param name="missingRequestBodyRequiredValueAccessor">The value to set.</param> [MemberNotNull(nameof(_missingRequestBodyRequiredValueAccessor))] public void SetMissingRequestBodyRequiredValueAccessor(Func<string> missingRequestBodyRequiredValueAccessor) { ArgumentNullException.ThrowIfNull(missingRequestBodyRequiredValueAccessor); _missingRequestBodyRequiredValueAccessor = missingRequestBodyRequiredValueAccessor; } /// <inheritdoc/> public override Func<string, string> ValueMustNotBeNullAccessor => _valueMustNotBeNullAccessor; /// <summary> /// Sets the <see cref="ValueMustNotBeNullAccessor"/> property. /// </summary> /// <param name="valueMustNotBeNullAccessor">The value to set.</param> [MemberNotNull(nameof(_valueMustNotBeNullAccessor))] public void SetValueMustNotBeNullAccessor(Func<string, string> valueMustNotBeNullAccessor) { ArgumentNullException.ThrowIfNull(valueMustNotBeNullAccessor); _valueMustNotBeNullAccessor = valueMustNotBeNullAccessor; } /// <inheritdoc/> public override Func<string, string, string> AttemptedValueIsInvalidAccessor => _attemptedValueIsInvalidAccessor; /// <summary> /// Sets the <see cref="AttemptedValueIsInvalidAccessor"/> property. /// </summary> /// <param name="attemptedValueIsInvalidAccessor">The value to set.</param> [MemberNotNull(nameof(_attemptedValueIsInvalidAccessor))] public void SetAttemptedValueIsInvalidAccessor(Func<string, string, string> attemptedValueIsInvalidAccessor) { ArgumentNullException.ThrowIfNull(attemptedValueIsInvalidAccessor); _attemptedValueIsInvalidAccessor = attemptedValueIsInvalidAccessor; } /// <inheritdoc/> public override Func<string, string> NonPropertyAttemptedValueIsInvalidAccessor => _nonPropertyAttemptedValueIsInvalidAccessor; /// <summary> /// Sets the <see cref="NonPropertyAttemptedValueIsInvalidAccessor"/> property. /// </summary> /// <param name="nonPropertyAttemptedValueIsInvalidAccessor">The value to set.</param> [MemberNotNull(nameof(_nonPropertyAttemptedValueIsInvalidAccessor))] public void SetNonPropertyAttemptedValueIsInvalidAccessor( Func<string, string> nonPropertyAttemptedValueIsInvalidAccessor) { ArgumentNullException.ThrowIfNull(nonPropertyAttemptedValueIsInvalidAccessor); _nonPropertyAttemptedValueIsInvalidAccessor = nonPropertyAttemptedValueIsInvalidAccessor; } /// <inheritdoc/> public override Func<string, string> UnknownValueIsInvalidAccessor => _unknownValueIsInvalidAccessor; /// <summary> /// Sets the <see cref="UnknownValueIsInvalidAccessor"/> property. /// </summary> /// <param name="unknownValueIsInvalidAccessor">The value to set.</param> [MemberNotNull(nameof(_unknownValueIsInvalidAccessor))] public void SetUnknownValueIsInvalidAccessor(Func<string, string> unknownValueIsInvalidAccessor) { ArgumentNullException.ThrowIfNull(unknownValueIsInvalidAccessor); _unknownValueIsInvalidAccessor = unknownValueIsInvalidAccessor; } /// <inheritdoc/> public override Func<string> NonPropertyUnknownValueIsInvalidAccessor => _nonPropertyUnknownValueIsInvalidAccessor; /// <summary> /// Sets the <see cref="NonPropertyUnknownValueIsInvalidAccessor"/> property. /// </summary> /// <param name="nonPropertyUnknownValueIsInvalidAccessor">The value to set.</param> [MemberNotNull(nameof(_nonPropertyUnknownValueIsInvalidAccessor))] public void SetNonPropertyUnknownValueIsInvalidAccessor(Func<string> nonPropertyUnknownValueIsInvalidAccessor) { ArgumentNullException.ThrowIfNull(nonPropertyUnknownValueIsInvalidAccessor); _nonPropertyUnknownValueIsInvalidAccessor = nonPropertyUnknownValueIsInvalidAccessor; } /// <inheritdoc/> public override Func<string, string> ValueIsInvalidAccessor => _valueIsInvalidAccessor; /// <summary> /// Sets the <see cref="ValueIsInvalidAccessor"/> property. /// </summary> /// <param name="valueIsInvalidAccessor">The value to set.</param> [MemberNotNull(nameof(_valueIsInvalidAccessor))] public void SetValueIsInvalidAccessor(Func<string, string> valueIsInvalidAccessor) { ArgumentNullException.ThrowIfNull(valueIsInvalidAccessor); _valueIsInvalidAccessor = valueIsInvalidAccessor; } /// <inheritdoc/> public override Func<string, string> ValueMustBeANumberAccessor => _valueMustBeANumberAccessor; /// <summary> /// Sets the <see cref="ValueMustBeANumberAccessor"/> property. /// </summary> /// <param name="valueMustBeANumberAccessor">The value to set.</param> [MemberNotNull(nameof(_valueMustBeANumberAccessor))] public void SetValueMustBeANumberAccessor(Func<string, string> valueMustBeANumberAccessor) { ArgumentNullException.ThrowIfNull(valueMustBeANumberAccessor); _valueMustBeANumberAccessor = valueMustBeANumberAccessor; } /// <inheritdoc/> public override Func<string> NonPropertyValueMustBeANumberAccessor => _nonPropertyValueMustBeANumberAccessor; /// <summary> /// Sets the <see cref="NonPropertyValueMustBeANumberAccessor"/> property. /// </summary> /// <param name="nonPropertyValueMustBeANumberAccessor">The value to set.</param> [MemberNotNull(nameof(_nonPropertyValueMustBeANumberAccessor))] public void SetNonPropertyValueMustBeANumberAccessor(Func<string> nonPropertyValueMustBeANumberAccessor) { ArgumentNullException.ThrowIfNull(nonPropertyValueMustBeANumberAccessor); _nonPropertyValueMustBeANumberAccessor = nonPropertyValueMustBeANumberAccessor; } }