You've already forked linux-packaging-mono
Imported Upstream version 4.6.0.125
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
This commit is contained in:
parent
a569aebcfd
commit
e79aa3c0ed
@ -0,0 +1,75 @@
|
||||
namespace System.Web.ModelBinding {
|
||||
using System;
|
||||
using System.Globalization;
|
||||
|
||||
// Provides configuration settings common to the new model binding system.
|
||||
public static class ModelBinderErrorMessageProviders {
|
||||
|
||||
private static ModelBinderErrorMessageProvider _typeConversionErrorMessageProvider;
|
||||
private static ModelBinderErrorMessageProvider _valueRequiredErrorMessageProvider;
|
||||
|
||||
public static ModelBinderErrorMessageProvider TypeConversionErrorMessageProvider {
|
||||
get {
|
||||
if (_typeConversionErrorMessageProvider == null) {
|
||||
_typeConversionErrorMessageProvider = DefaultTypeConversionErrorMessageProvider;
|
||||
}
|
||||
return _typeConversionErrorMessageProvider;
|
||||
}
|
||||
set {
|
||||
_typeConversionErrorMessageProvider = value;
|
||||
}
|
||||
}
|
||||
|
||||
public static ModelBinderErrorMessageProvider ValueRequiredErrorMessageProvider {
|
||||
get {
|
||||
if (_valueRequiredErrorMessageProvider == null) {
|
||||
_valueRequiredErrorMessageProvider = DefaultValueRequiredErrorMessageProvider;
|
||||
}
|
||||
return _valueRequiredErrorMessageProvider;
|
||||
}
|
||||
set {
|
||||
_valueRequiredErrorMessageProvider = value;
|
||||
}
|
||||
}
|
||||
|
||||
private static string DefaultTypeConversionErrorMessageProvider(ModelBindingExecutionContext modelBindingExecutionContext, ModelMetadata modelMetadata, object incomingValue) {
|
||||
return GetResourceCommon(modelBindingExecutionContext, modelMetadata, incomingValue, GetValueInvalidResource);
|
||||
}
|
||||
|
||||
private static string DefaultValueRequiredErrorMessageProvider(ModelBindingExecutionContext modelBindingExecutionContext, ModelMetadata modelMetadata, object incomingValue) {
|
||||
return GetResourceCommon(modelBindingExecutionContext, modelMetadata, incomingValue, GetValueRequiredResource);
|
||||
}
|
||||
|
||||
private static string GetResourceCommon(ModelBindingExecutionContext modelBindingExecutionContext, ModelMetadata modelMetadata, object incomingValue, Func<ModelBindingExecutionContext, string> resourceAccessor) {
|
||||
string displayName = modelMetadata.GetDisplayName();
|
||||
string errorMessageTemplate = resourceAccessor(modelBindingExecutionContext);
|
||||
string errorMessage = String.Format(CultureInfo.CurrentCulture, errorMessageTemplate, incomingValue, displayName);
|
||||
return errorMessage;
|
||||
}
|
||||
|
||||
private static string GetUserResourceString(ModelBindingExecutionContext modelBindingExecutionContext, string resourceName) {
|
||||
#if UNDEF
|
||||
return GetUserResourceString(modelBindingExecutionContext, resourceName, DefaultModelBinder.ResourceClassKey);
|
||||
#endif
|
||||
return GetUserResourceString(modelBindingExecutionContext, resourceName, String.Empty);
|
||||
}
|
||||
|
||||
// If the user specified a ResourceClassKey try to load the resource they specified.
|
||||
// If the class key is invalid, an exception will be thrown.
|
||||
// If the class key is valid but the resource is not found, it returns null, in which
|
||||
// case it will fall back to the MVC default error message.
|
||||
internal static string GetUserResourceString(ModelBindingExecutionContext modelBindingExecutionContext, string resourceName, string resourceClassKey) {
|
||||
return (!String.IsNullOrEmpty(resourceClassKey) && (modelBindingExecutionContext != null) && (modelBindingExecutionContext.HttpContext != null))
|
||||
? modelBindingExecutionContext.HttpContext.GetGlobalResourceObject(resourceClassKey, resourceName, CultureInfo.CurrentUICulture) as string
|
||||
: null;
|
||||
}
|
||||
|
||||
private static string GetValueInvalidResource(ModelBindingExecutionContext modelBindingExecutionContext) {
|
||||
return GetUserResourceString(modelBindingExecutionContext, "PropertyValueInvalid") ?? SR.GetString(SR.ModelBinderConfig_ValueInvalid);
|
||||
}
|
||||
|
||||
private static string GetValueRequiredResource(ModelBindingExecutionContext modelBindingExecutionContext) {
|
||||
return GetUserResourceString(modelBindingExecutionContext, "PropertyValueRequired") ?? SR.GetString(SR.ModelBinderConfig_ValueRequired);
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user