Files
AIPS/dotnet/AipsCore/Domain/Abstract/ValueObject/AbstractValueObject.cs
2026-02-04 21:11:51 +01:00

24 lines
595 B
C#

using AipsCore.Domain.Abstract.Rule;
using AipsCore.Domain.Common.Validation;
namespace AipsCore.Domain.Abstract.ValueObject;
public abstract record AbstractValueObject
{
protected abstract ICollection<IRule> GetValidationRules();
protected void Validate()
{
var rules = GetValidationRules();
var validator = new Validator(rules, ValueObjectName);
validator.Validate();
if (!validator.Success)
{
throw validator.GetValidationException();
}
}
private string ValueObjectName => this.GetType().Name;
}