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, IValidationEnabled { public EditTrackPullConfigInputValidation(IStringLocalizer 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)]); }); }); } }