implement

This commit is contained in:
2026-02-08 21:32:24 +01:00
parent 90c127ddb3
commit 9d95bb5cc3
15 changed files with 313 additions and 0 deletions

View File

@@ -0,0 +1,29 @@
using AipsCore.Domain.Abstract.Rule;
namespace AipsCore.Domain.Common.Validation.Rules;
public class ColorFormatRule : AbstractRule
{
private readonly string _colorValue;
protected override string ErrorCode => "color_format";
protected override string ErrorMessage => "Color should be in format '#000000'";
public ColorFormatRule(string colorValue)
{
_colorValue = colorValue;
}
public override bool Validate()
{
if (_colorValue.Length != 7) return false;
if (_colorValue[0] != '#') return false;
for (int i = 1; i < _colorValue.Length; i++)
{
if (!char.IsAsciiHexDigit(_colorValue[i])) return false;
}
return true;
}
}

View File

@@ -0,0 +1,23 @@
using System.Numerics;
using AipsCore.Domain.Abstract.Rule;
namespace AipsCore.Domain.Common.Validation.Rules;
public class MaxValueRule<T> : AbstractRule where T : INumber<T>
{
private readonly T _value;
private readonly T _maximum;
public MaxValueRule(T value, T maximum)
{
_value = value;
_maximum = maximum;
}
protected override string ErrorCode => "max_value";
protected override string ErrorMessage => $"Value of '{ValueObjectName}' should be at most {_maximum}";
public override bool Validate()
{
return _value <= _maximum;
}
}

View File

@@ -0,0 +1,23 @@
using System.Numerics;
using AipsCore.Domain.Abstract.Rule;
namespace AipsCore.Domain.Common.Validation.Rules;
public class MinValueRule<T>: AbstractRule where T : INumber<T>
{
private readonly T _value;
private readonly T _minimum;
public MinValueRule(T value, T minimum)
{
_value = value;
_minimum = minimum;
}
protected override string ErrorCode => "min_value";
protected override string ErrorMessage => $"Value of '{ValueObjectName}' should be at least {_minimum}";
public override bool Validate()
{
return _value >= _minimum;
}
}