mirror of https://github.com/abpframework/abp.git
3 changed files with 94 additions and 0 deletions
@ -0,0 +1,68 @@ |
|||||
|
using System; |
||||
|
using System.Collections.Generic; |
||||
|
using System.ComponentModel.DataAnnotations; |
||||
|
using JetBrains.Annotations; |
||||
|
|
||||
|
namespace Volo.Abp.ObjectExtending |
||||
|
{ |
||||
|
public static class ObjectExtensionPropertyInfoValidationExtensions |
||||
|
{ |
||||
|
public const string ValidationConfigurationName = "Validation"; |
||||
|
|
||||
|
[NotNull] |
||||
|
public static ObjectExtensionPropertyInfo ConfigureValidation( |
||||
|
[NotNull] this ObjectExtensionPropertyInfo propertyExtension, |
||||
|
[NotNull] Action<ObjectExtensionPropertyInfoValidationOptions> configureAction) |
||||
|
{ |
||||
|
Check.NotNull(propertyExtension, nameof(propertyExtension)); |
||||
|
Check.NotNull(configureAction, nameof(configureAction)); |
||||
|
|
||||
|
configureAction(propertyExtension.GetOrAddValidationConfiguration()); |
||||
|
|
||||
|
return propertyExtension; |
||||
|
} |
||||
|
|
||||
|
[NotNull] |
||||
|
public static ObjectExtensionPropertyInfo AddValidationAttributes( |
||||
|
[NotNull] this ObjectExtensionPropertyInfo propertyExtension, |
||||
|
[NotNull] params ValidationAttribute[] validationAttributes) |
||||
|
{ |
||||
|
Check.NotNull(propertyExtension, nameof(propertyExtension)); |
||||
|
Check.NotNullOrEmpty(validationAttributes, nameof(validationAttributes)); |
||||
|
|
||||
|
propertyExtension |
||||
|
.GetOrAddValidationConfiguration() |
||||
|
.ValidationAttributes |
||||
|
.AddRange(validationAttributes); |
||||
|
|
||||
|
return propertyExtension; |
||||
|
} |
||||
|
|
||||
|
[CanBeNull] |
||||
|
public static ObjectExtensionPropertyInfoValidationOptions GetValidationConfigurationOrNull( |
||||
|
[NotNull] this ObjectExtensionPropertyInfo propertyExtension) |
||||
|
{ |
||||
|
Check.NotNull(propertyExtension, nameof(propertyExtension)); |
||||
|
|
||||
|
return propertyExtension.Configuration.GetOrDefault(ValidationConfigurationName) |
||||
|
as ObjectExtensionPropertyInfoValidationOptions; |
||||
|
} |
||||
|
|
||||
|
[NotNull] |
||||
|
public static ObjectExtensionPropertyInfoValidationOptions GetOrAddValidationConfiguration( |
||||
|
[NotNull] this ObjectExtensionPropertyInfo propertyExtension) |
||||
|
{ |
||||
|
Check.NotNull(propertyExtension, nameof(propertyExtension)); |
||||
|
|
||||
|
var validationConfiguration = propertyExtension.GetValidationConfigurationOrNull(); |
||||
|
|
||||
|
if (validationConfiguration == null) |
||||
|
{ |
||||
|
validationConfiguration = new ObjectExtensionPropertyInfoValidationOptions(propertyExtension); |
||||
|
propertyExtension.Configuration[ValidationConfigurationName] = validationConfiguration; |
||||
|
} |
||||
|
|
||||
|
return validationConfiguration; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,25 @@ |
|||||
|
using System.Collections.Generic; |
||||
|
using System.ComponentModel.DataAnnotations; |
||||
|
using JetBrains.Annotations; |
||||
|
|
||||
|
namespace Volo.Abp.ObjectExtending |
||||
|
{ |
||||
|
public class ObjectExtensionPropertyInfoValidationOptions |
||||
|
{ |
||||
|
[NotNull] |
||||
|
public ObjectExtensionPropertyInfo ExtensionProperty { get; } |
||||
|
|
||||
|
[NotNull] |
||||
|
public ObjectExtensionInfo ObjectExtension => ExtensionProperty.ObjectExtension; |
||||
|
|
||||
|
[NotNull] |
||||
|
public List<ValidationAttribute> ValidationAttributes { get; } |
||||
|
|
||||
|
public ObjectExtensionPropertyInfoValidationOptions( |
||||
|
[NotNull] ObjectExtensionPropertyInfo extensionProperty) |
||||
|
{ |
||||
|
ExtensionProperty = Check.NotNull(extensionProperty, nameof(extensionProperty)); |
||||
|
ValidationAttributes = new List<ValidationAttribute>(); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
Loading…
Reference in new issue