using Back.Common; using Back.Services; using FluentValidation; using Shared.DTOs; namespace Back.Validations { public class AddOrCodValidation : AbstractValidator> { public AddOrCodValidation(CheckPermission _checkPermission, ServCOD servCod) { CascadeMode = CascadeMode.Stop; When(r => r.Item3 == eActionValidation.add, () => { RuleFor(r => r.Item1) .Custom((CompanyID, context) => { if (!_checkPermission.AllowAddCODInCompany(CompanyID).Result) context.AddFailure("اضافه کردن کالا محدود شده است"); }); }); When(r => r.Item3 == eActionValidation.update, () => { RuleFor(r => r) .Custom((model, context) => { var companyid = model.Item1; if (!model.Item2.ID.HasValue || model.Item2.ID <= 0) context.AddFailure("شناسه کالا نمی تواند خالی باشذ"); else { var customerid = model.Item2.ID.Value; if (!servCod.ExistCodByCompanyID(customerid, companyid).Result) context.AddFailure("کالا با این شناسه یافت نشد"); } }); }); RuleFor(r => r.Item2.Title) .NotNull().WithMessage("نام نمی تواند خالی باشد") .NotEmpty().WithMessage("نام نمی تواند خالی باشد") .MinimumLength(3).WithMessage("حداقل کارکتر مجار نام 3 می باشد"); // RuleFor(r => r.Item2.UnitID) .NotNull().WithMessage("واحد اندازه گیزی نمی تواند خالی باشد") .NotEmpty().WithMessage("واحد اندازه گیزی نمی تواند خالی باشد") ; RuleFor(r => r.Item2.TaxRate) .NotNull().WithMessage("نرخ مالیات نمی تواند خالی باشد") .NotEmpty().WithMessage("نرخ مالیات نمی تواند خالی باشد") .Custom((TaxRate, context) => { if (TaxRate > 100) context.AddFailure("نرخ مالیات نمی تواند بیشتر از 100 باشد"); }); } } }