61 lines
2.5 KiB
C#
61 lines
2.5 KiB
C#
// Copyright (c) .NET Foundation. All rights reserved.
|
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
|
|
|
using System;
|
|
using Microsoft.Extensions.Localization;
|
|
using Microsoft.Extensions.Options;
|
|
|
|
namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
|
|
{
|
|
/// <summary>
|
|
/// Sets up default options for <see cref="MvcOptions"/>.
|
|
/// </summary>
|
|
public class MvcDataAnnotationsMvcOptionsSetup : IConfigureOptions<MvcOptions>
|
|
{
|
|
private readonly IStringLocalizerFactory _stringLocalizerFactory;
|
|
private readonly IValidationAttributeAdapterProvider _validationAttributeAdapterProvider;
|
|
private readonly IOptions<MvcDataAnnotationsLocalizationOptions> _dataAnnotationLocalizationOptions;
|
|
|
|
public MvcDataAnnotationsMvcOptionsSetup(
|
|
IValidationAttributeAdapterProvider validationAttributeAdapterProvider,
|
|
IOptions<MvcDataAnnotationsLocalizationOptions> dataAnnotationLocalizationOptions)
|
|
{
|
|
if (validationAttributeAdapterProvider == null)
|
|
{
|
|
throw new ArgumentNullException(nameof(validationAttributeAdapterProvider));
|
|
}
|
|
|
|
if (dataAnnotationLocalizationOptions == null)
|
|
{
|
|
throw new ArgumentNullException(nameof(dataAnnotationLocalizationOptions));
|
|
}
|
|
|
|
_validationAttributeAdapterProvider = validationAttributeAdapterProvider;
|
|
_dataAnnotationLocalizationOptions = dataAnnotationLocalizationOptions;
|
|
}
|
|
|
|
public MvcDataAnnotationsMvcOptionsSetup(
|
|
IValidationAttributeAdapterProvider validationAttributeAdapterProvider,
|
|
IOptions<MvcDataAnnotationsLocalizationOptions> dataAnnotationLocalizationOptions,
|
|
IStringLocalizerFactory stringLocalizerFactory)
|
|
: this(validationAttributeAdapterProvider, dataAnnotationLocalizationOptions)
|
|
{
|
|
_stringLocalizerFactory = stringLocalizerFactory;
|
|
}
|
|
|
|
public void Configure(MvcOptions options)
|
|
{
|
|
if (options == null)
|
|
{
|
|
throw new ArgumentNullException(nameof(options));
|
|
}
|
|
|
|
options.ModelMetadataDetailsProviders.Add(new DataAnnotationsMetadataProvider(_stringLocalizerFactory));
|
|
|
|
options.ModelValidatorProviders.Add(new DataAnnotationsModelValidatorProvider(
|
|
_validationAttributeAdapterProvider,
|
|
_dataAnnotationLocalizationOptions,
|
|
_stringLocalizerFactory));
|
|
}
|
|
}
|
|
} |