31 lines
1.0 KiB
C#
31 lines
1.0 KiB
C#
using System;
|
|
using System.Threading.Tasks;
|
|
using System.Text;
|
|
using Compliance.Domain.Models;
|
|
using Compliance.DTOs;
|
|
using Compliance.Infrastructure.Repositories;
|
|
|
|
namespace Compliance.Services.ValidationRules
|
|
{
|
|
public class ConsecutiveEstimationValidationRule : IValidationRule
|
|
{
|
|
private const string RULE_NAME = "Consecutive Estimation Validation";
|
|
private const int MAX_CONSECUTIVE_ESTIMATIONS = 3;
|
|
|
|
public int Priority => 1;
|
|
|
|
public Task<ValidationResult> ValidateAsync(
|
|
BillComplianceRequest request,
|
|
DistributorInformation distributorInfo,
|
|
Client clientInfo)
|
|
{
|
|
if (request.ConsecutiveEstimations > MAX_CONSECUTIVE_ESTIMATIONS)
|
|
{
|
|
return Task.FromResult(ValidationResult.Failure(RULE_NAME,
|
|
$"Maximum consecutive estimated readings ({MAX_CONSECUTIVE_ESTIMATIONS}) exceeded"));
|
|
}
|
|
|
|
return Task.FromResult(ValidationResult.Success(RULE_NAME));
|
|
}
|
|
}
|
|
} |