faturas_4docs/Compliance/Services/ValidationRules/ConsecutiveEstimationValidationRule.cs

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));
}
}
}