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