Files
moadiran/Back/Validations/AddOrCodValidation.cs

66 lines
2.5 KiB
C#
Raw Normal View History

2024-05-09 23:55:22 +03:30
using Back.Common;
using Back.Services;
using FluentValidation;
using Shared.DTOs;
namespace Back.Validations
{
public class AddOrCodValidation : AbstractValidator<Tuple<int, RCOD, eActionValidation>>
{
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;
2024-05-25 17:52:40 +03:30
if (!servCod.ExistCodByCompanyID(customerid, companyid).Result)
2024-05-09 23:55:22 +03:30
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)
2024-06-27 13:35:06 +03:30
//.NotNull().WithMessage("نرخ مالیات نمی تواند خالی باشد")
//.NotEmpty().WithMessage("نرخ مالیات نمی تواند خالی باشد")
2024-05-09 23:55:22 +03:30
.Custom((TaxRate, context) =>
{
if (TaxRate > 100)
context.AddFailure("نرخ مالیات نمی تواند بیشتر از 100 باشد");
});
}
}
}