using Back.Services; using FluentValidation; using Shared.DTOs; using System; namespace Back.Validations { public enum ActionMobileValidation { No, ExistMobile, nonExistMobile, } public class MobileValidation : AbstractValidator> { public MobileValidation(servCompany servCompany,servUser servUser) { CascadeMode = CascadeMode.Stop; RuleFor(m => m.Item1) .NotEmpty().WithMessage("موبایل نمی تواند باشد") .NotNull().WithMessage("موبایل نمی تواند باشد") .Length(11).WithMessage("فرمت موبایل صحیح نمی باشد") .Must(m => m.StartsWith("09")).WithMessage("فرمت موبایل صحیح نمی باشد"); RuleFor(m => m) .Custom((model, context) => { if (model.Item2== ActionMobileValidation.ExistMobile) { if (!servCompany.ExistMobileInCompany(model.Item1).Result) { context.AddFailure("این موبایل یافت نشد"); } } if (model.Item2 == ActionMobileValidation.nonExistMobile) { if (servCompany.ExistMobileInCompany(model.Item1,false).Result) context.AddFailure("این موبایل در سیستم تعریف شده"); else { if (servUser.ExistMobileInUser(model.Item1, false).Result) context.AddFailure("این موبایل در سیستم تعریف شده"); } } }); } } }