/// <summary> /// Use DB for localization /// </summary> /// <param name="provider"></param> /// <param name="localizer">localizer factory</param> /// <param name="mbErrors">Model binding errors</param> public static void SetLocalizedModelBindingErrorMessages(this DefaultModelBindingMessageProvider provider, ModelBindingErrors mbErrors, IStringLocalizer localizer) { provider.SetAttemptedValueIsInvalidAccessor((x, y) => GetLoclizedModelBindingError(localizer, mbErrors.AttemptedValueIsInvalidAccessor, x, y)); provider.SetMissingBindRequiredValueAccessor((x) => GetLoclizedModelBindingError(localizer, mbErrors.MissingBindRequiredValueAccessor, x)); provider.SetMissingKeyOrValueAccessor(() => GetLoclizedModelBindingError(localizer, mbErrors.MissingKeyOrValueAccessor)); provider.SetMissingRequestBodyRequiredValueAccessor(() => GetLoclizedModelBindingError(localizer, mbErrors.MissingRequestBodyRequiredValueAccessor)); provider.SetNonPropertyAttemptedValueIsInvalidAccessor((x) => GetLoclizedModelBindingError(localizer, mbErrors.NonPropertyAttemptedValueIsInvalidAccessor, x)); provider.SetNonPropertyUnknownValueIsInvalidAccessor(() => GetLoclizedModelBindingError(localizer, mbErrors.NonPropertyUnknownValueIsInvalidAccessor)); provider.SetNonPropertyValueMustBeANumberAccessor(() => GetLoclizedModelBindingError(localizer, mbErrors.NonPropertyValueMustBeANumberAccessor)); provider.SetUnknownValueIsInvalidAccessor((x) => GetLoclizedModelBindingError(localizer, mbErrors.UnknownValueIsInvalidAccessor, x)); provider.SetValueIsInvalidAccessor((x) => GetLoclizedModelBindingError(localizer, mbErrors.ValueIsInvalidAccessor, x)); provider.SetValueMustBeANumberAccessor((x) => GetLoclizedModelBindingError(localizer, mbErrors.ValueMustBeANumberAccessor, x)); provider.SetValueMustNotBeNullAccessor((x) => GetLoclizedModelBindingError(localizer, mbErrors.ValueMustNotBeNullAccessor, x)); }
/// <summary> /// Initialize a new instance of <see cref="XModelBindingMetadataProvider"/> /// </summary> /// <param name="strLocalizer"></param> /// <param name="options"></param> public XModelBindingMetadataProvider(IStringLocalizer strLocalizer, IOptions <XLocalizerOptions> options) { localizer = strLocalizer; mbErrors = options.Value.ModelBindingErrors; }