track/src/TrackCenter.Application/Validations/TrackPull/EditTrackPullConfigInputValidation.cs
2025-07-14 10:30:46 +08:00

54 lines
2.5 KiB
C#

using FluentValidation;
using Microsoft.Extensions.Localization;
using SJZY.Expand.ABP.Core.Localization;
using TrackCenter.Application.Dtos.TrackPull;
using TrackCenter.Application.Localization;
namespace TrackCenter.Application.Validations.TrackPull;
public class EditTrackPullConfigInputValidation : AbstractValidator<EditTrackPullConfigInput>, IValidationEnabled
{
public EditTrackPullConfigInputValidation(IStringLocalizer<TrackLocalizationResource> stringLocalizer)
{
RuleFor(x => x.Options).IsInEnum().WithMessage(stringLocalizer[SjzyBasicLocalization.Validation_IsInEnum,
nameof(EditTrackPullConfigInput.Options)]);
When(x => x.Options != OptionTypeNoNull.新增,
() =>
{
RuleFor(x => x.Id).GreaterThan(0).WithMessage(stringLocalizer[
SjzyBasicLocalization.Validation_GreaterThan,
nameof(EditTrackPullConfigInput.Id), 0]);
});
When(x => x.Options != OptionTypeNoNull.删除, () =>
{
RuleFor(x => x.SubSystemId).NotNull().WithMessage(stringLocalizer[SjzyBasicLocalization.Validation_NotNull,
nameof(EditTrackPullConfigInput.SubSystemId)]);
RuleFor(x => x.ServiceProviderId).NotNull().WithMessage(stringLocalizer[
SjzyBasicLocalization.Validation_NotNull, nameof(EditTrackPullConfigInput.ServiceProviderId)]);
RuleFor(x => x.PullInterval).NotNull().WithMessage(stringLocalizer[SjzyBasicLocalization.Validation_NotNull,
nameof(EditTrackPullConfigInput.PullInterval)]);
RuleFor(x => x.ParseMethod).NotNull().WithMessage(stringLocalizer[SjzyBasicLocalization.Validation_NotNull,
nameof(EditTrackPullConfigInput.ParseMethod)]);
When(x => x.ParseMethod == 2, () =>
{
RuleFor(x => x.OrderNoName).NotEmpty().WithMessage(
stringLocalizer[SjzyBasicLocalization.Validation_NotEmpty,
nameof(EditTrackPullConfigInput.OrderNoName)]);
RuleFor(x => x.OrderPath).NotEmpty().WithMessage(stringLocalizer[
SjzyBasicLocalization.Validation_NotEmpty,
nameof(EditTrackPullConfigInput.OrderPath)]);
RuleFor(x => x.TrackDetailsPath).NotEmpty().WithMessage(stringLocalizer[
SjzyBasicLocalization.Validation_NotEmpty, nameof(EditTrackPullConfigInput.TrackDetailsPath)]);
});
});
}
}