Files
moadiran/Back/Validations/MobileValidation.cs

51 lines
1.8 KiB
C#
Raw Permalink Normal View History

2024-04-29 07:58:41 +03:30
using Back.Services;
using FluentValidation;
2024-04-05 01:05:32 +03:30
using Shared.DTOs;
using System;
namespace Back.Validations
{
2024-04-29 18:15:46 +03:30
public enum ActionMobileValidation
2024-04-05 01:05:32 +03:30
{
2024-04-29 18:15:46 +03:30
No,
ExistMobile,
nonExistMobile,
}
public class MobileValidation : AbstractValidator<Tuple<string, ActionMobileValidation>>
{
public MobileValidation(servCompany servCompany,servUser servUser)
2024-04-05 01:05:32 +03:30
{
2024-04-05 17:43:11 +03:30
CascadeMode = CascadeMode.Stop;
2024-04-29 07:58:41 +03:30
RuleFor(m => m.Item1)
2024-04-05 01:05:32 +03:30
.NotEmpty().WithMessage("موبایل نمی تواند باشد")
.NotNull().WithMessage("موبایل نمی تواند باشد")
.Length(11).WithMessage("فرمت موبایل صحیح نمی باشد")
.Must(m => m.StartsWith("09")).WithMessage("فرمت موبایل صحیح نمی باشد");
2024-04-29 07:58:41 +03:30
RuleFor(m => m)
.Custom((model, context) => {
2024-04-29 18:15:46 +03:30
if (model.Item2== ActionMobileValidation.ExistMobile)
2024-04-29 07:58:41 +03:30
{
2024-04-29 18:15:46 +03:30
if (!servCompany.ExistMobileInCompany(model.Item1).Result)
2024-04-29 07:58:41 +03:30
{
context.AddFailure("این موبایل یافت نشد");
}
}
2024-04-29 18:15:46 +03:30
if (model.Item2 == ActionMobileValidation.nonExistMobile)
{
if (servCompany.ExistMobileInCompany(model.Item1,false).Result)
context.AddFailure("این موبایل در سیستم تعریف شده");
else
{
if (servUser.ExistMobileInUser(model.Item1, false).Result)
context.AddFailure("این موبایل در سیستم تعریف شده");
}
}
2024-04-29 07:58:41 +03:30
2024-04-29 18:15:46 +03:30
});
2024-04-05 01:05:32 +03:30
}
}
}