51 lines
1.8 KiB
C#
51 lines
1.8 KiB
C#
using Back.Services;
|
|
using FluentValidation;
|
|
using Shared.DTOs;
|
|
using System;
|
|
|
|
namespace Back.Validations
|
|
{
|
|
public enum ActionMobileValidation
|
|
{
|
|
No,
|
|
ExistMobile,
|
|
nonExistMobile,
|
|
|
|
}
|
|
public class MobileValidation : AbstractValidator<Tuple<string, ActionMobileValidation>>
|
|
{
|
|
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("این موبایل در سیستم تعریف شده");
|
|
}
|
|
}
|
|
|
|
|
|
});
|
|
}
|
|
}
|
|
}
|