mirror of https://github.com/abpframework/abp.git
committed by
GitHub
12 changed files with 154 additions and 19 deletions
@ -0,0 +1,21 @@ |
|||||
|
using System.Collections.Generic; |
||||
|
using Volo.Abp.FeatureManagement.JsonConverters; |
||||
|
using Volo.Abp.Validation.StringValues; |
||||
|
|
||||
|
namespace Volo.Abp.FeatureManagement; |
||||
|
|
||||
|
public class AbpFeatureManagementApplicationContractsOptions |
||||
|
{ |
||||
|
public HashSet<IValueValidatorFactory> ValueValidatorFactory { get; } |
||||
|
|
||||
|
public AbpFeatureManagementApplicationContractsOptions() |
||||
|
{ |
||||
|
ValueValidatorFactory = new HashSet<IValueValidatorFactory> |
||||
|
{ |
||||
|
new ValueValidatorFactory<AlwaysValidValueValidator>("NULL"), |
||||
|
new ValueValidatorFactory<BooleanValueValidator>("BOOLEAN"), |
||||
|
new ValueValidatorFactory<NumericValueValidator>("NUMERIC"), |
||||
|
new ValueValidatorFactory<StringValueValidator>("STRING") |
||||
|
}; |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,10 @@ |
|||||
|
using Volo.Abp.Validation.StringValues; |
||||
|
|
||||
|
namespace Volo.Abp.FeatureManagement.JsonConverters; |
||||
|
|
||||
|
public interface IValueValidatorFactory |
||||
|
{ |
||||
|
bool CanCreate(string name); |
||||
|
|
||||
|
IValueValidator Create(); |
||||
|
} |
||||
@ -0,0 +1,24 @@ |
|||||
|
using Volo.Abp.Validation.StringValues; |
||||
|
|
||||
|
namespace Volo.Abp.FeatureManagement.JsonConverters; |
||||
|
|
||||
|
public class ValueValidatorFactory<TValueValidator> : IValueValidatorFactory |
||||
|
where TValueValidator : IValueValidator, new() |
||||
|
{ |
||||
|
protected readonly string Name; |
||||
|
|
||||
|
public ValueValidatorFactory(string name) |
||||
|
{ |
||||
|
Name = name; |
||||
|
} |
||||
|
|
||||
|
public bool CanCreate(string name) |
||||
|
{ |
||||
|
return Name == name; |
||||
|
} |
||||
|
|
||||
|
public IValueValidator Create() |
||||
|
{ |
||||
|
return new TValueValidator() as IValueValidator; |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,30 @@ |
|||||
|
using System; |
||||
|
using Volo.Abp.Validation.StringValues; |
||||
|
|
||||
|
namespace Volo.Abp.FeatureManagement; |
||||
|
|
||||
|
[Serializable] |
||||
|
[ValueValidator("URL")] |
||||
|
public class UrlValueValidator : ValueValidatorBase |
||||
|
{ |
||||
|
public string Scheme { |
||||
|
get => this["Scheme"].ToString(); |
||||
|
set => this["Scheme"] = value; |
||||
|
} |
||||
|
|
||||
|
public UrlValueValidator() |
||||
|
{ |
||||
|
|
||||
|
} |
||||
|
|
||||
|
public UrlValueValidator(string scheme) |
||||
|
{ |
||||
|
Scheme = scheme; |
||||
|
} |
||||
|
|
||||
|
public override bool IsValid(object value) |
||||
|
{ |
||||
|
var s = value.ToString(); |
||||
|
return s != null && s.StartsWith(Scheme); |
||||
|
} |
||||
|
} |
||||
Loading…
Reference in new issue