using Back.Services; using FluentValidation; using Shared.DTOs; namespace Back.Validations { public class AddCustomerValidation : AbstractValidator> { public AddCustomerValidation(CheckPermission _checkPermission) { CascadeMode = CascadeMode.Stop; RuleFor(r => r.Item1) .Custom((CompanyID, context) => { if (! _checkPermission.AllowAddCustomerInCompany(CompanyID).Result) context.AddFailure("اضافه کردن مشتری محدود شده است"); }); RuleFor(r => r.Item2.FullName) .NotNull().WithMessage("نام نمی تواند خالی باشذ") .NotEmpty().WithMessage("نام نمی تواند خالی باشذ") .MinimumLength(5).WithMessage("حداقل کارکتر مجار نام 5 می باشد"); RuleFor(r => r.Item2.Phone) .NotNull().WithMessage("تلفن نمی تواند خالی باشذ") .NotEmpty().WithMessage("تلفن نمی تواند خالی باشذ") .MinimumLength(8).WithMessage("حداقل کارکتر مجار تلفن 8 می باشد"); RuleFor(r => r.Item2.Email) .Custom((model, context) => { if (!string.IsNullOrEmpty(model) && (!model.Contains("@") || !model.Contains("."))) context.AddFailure("فرمت پست الکترونیک صحبح نمی باشد"); }); RuleFor(r => r.Item2.EconomicCode) .Custom((model, context) => { if (!string.IsNullOrEmpty(model) && (model.Length<11 || model.Length > 14)) context.AddFailure("تعداد شماره اقتصادی صحبح نمی باشد"); }); RuleFor(r => r.Item2.BranchID) .Custom((model, context) => { if (!string.IsNullOrEmpty(model) && (model.Length > 10 )) context.AddFailure("تعداد کد شعبه صحبح نمی باشد"); }); RuleFor(r => r.Item2.ZipCode) .Custom((model, context) => { if (!string.IsNullOrEmpty(model) && (model.Length !=10)) context.AddFailure("تعداد کد پستی صحبح نمی باشد"); }); RuleFor(r => r.Item2.MeliCode) .Custom((model, context) => { if (!string.IsNullOrEmpty(model) && (model.Length < 10 || model.Length > 12)) context.AddFailure("تعداد شناسه ملی صحبح نمی باشد"); }); RuleFor(r => r.Item2.PassportNumber) .Custom((model, context) => { if (!string.IsNullOrEmpty(model) && (model.Length!=9)) context.AddFailure("تعداد شماره گذرنامه صحبح نمی باشد"); }); } } }