init backend

This commit is contained in:
2026-02-04 21:11:51 +01:00
parent 537d49e797
commit b73fd8eb05
31 changed files with 673 additions and 0 deletions

View File

@@ -0,0 +1,18 @@
using AipsCore.Domain.Common.Validation;
namespace AipsCore.Domain.Abstract.Rule;
public abstract class AbstractRule : IRule
{
protected abstract string ErrorCode { get; }
protected abstract string ErrorMessage { get; }
public string ValueObjectName { protected get; set; } = "Unknown";
public ValidationError GetError()
{
return new ValidationError(ErrorCode, ErrorMessage);
}
public abstract bool Validate();
}

View File

@@ -0,0 +1,10 @@
using AipsCore.Domain.Common.Validation;
namespace AipsCore.Domain.Abstract.Rule;
public interface IRule
{
ValidationError GetError();
bool Validate();
string ValueObjectName { set; }
}

View File

@@ -0,0 +1,24 @@
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;
}