У меня есть валидатор, который я использую как для вставки, так и для обновления. Один из проверок, которые я делаю, - это увидеть, существует ли то, что вставлено уже. Код для валидатора: < /p>
public GrapeColourValidator(IGrapeRepository grapeRepository)
{
_grapeRepository = grapeRepository;
RuleFor(x => x.Colour)
.NotEmpty()
.WithMessage("Colour is required")
.MaximumLength(_maxLength)
.WithMessage($"Colour cannot be more that {_maxLength} characters");
RuleFor(x => x)
.MustAsync(async (grapeColour, context, cancellation) =>
{
return await GrapeColourExists(grapeColour.Colour).ConfigureAwait(false);
})
.WithMessage($"Grape colour already exists");
}
private async Task GrapeColourExists(string grapeColour)
{
var colourResult = await _grapeRepository.GetByColour(grapeColour).ConfigureAwait(false);
return !colourResult.Any(x => x.Colour == grapeColour);
}
< /code>
Проблема с этим в том, что он работает также для обновления, поэтому цвет определенно будет существует. Я хочу пройти параметр, чтобы я мог сделать что -то вроде: < /p>
if(isInsert)
{
RuleFor(x => x)
.MustAsync(async (grapeColour, context, cancellation) =>
{
return await GrapeColourExists(grapeColour.Colour).ConfigureAwait(false);
})
.WithMessage($"Grape colour already exists");
}
У меня есть валидатор, который я использую как для вставки, так и для обновления. Один из проверок, которые я делаю, - это увидеть, существует ли то, что вставлено уже. Код для валидатора: < /p> [code]public GrapeColourValidator(IGrapeRepository grapeRepository) { _grapeRepository = grapeRepository;
RuleFor(x => x.Colour) .NotEmpty() .WithMessage("Colour is required") .MaximumLength(_maxLength) .WithMessage($"Colour cannot be more that {_maxLength} characters");
private async Task GrapeColourExists(string grapeColour) { var colourResult = await _grapeRepository.GetByColour(grapeColour).ConfigureAwait(false); return !colourResult.Any(x => x.Colour == grapeColour); } < /code> Проблема с этим в том, что он работает также для обновления, поэтому цвет определенно будет существует. Я хочу пройти параметр, чтобы я мог сделать что -то вроде: < /p> if(isInsert) { RuleFor(x => x) .MustAsync(async (grapeColour, context, cancellation) => { return await GrapeColourExists(grapeColour.Colour).ConfigureAwait(false); }) .WithMessage($"Grape colour already exists"); } [/code] Это возможно?