fix(api): исправлена валидация в AppInWork, Create, Update, проверка на уникальность ПО и работы.

This commit is contained in:
Mikhail Trubnikov
2024-04-17 09:07:46 +10:00
parent 0477a400e6
commit 59113e87da
2 changed files with 25 additions and 15 deletions

View File

@@ -44,9 +44,9 @@ namespace PARR.API.Validators
RuleFor(t => t.ApplicationId)
.MustAsync(async (entity, value, c) => await IsApplicationExist(entity))
.WithMessage("Указан несуществующий Id программного обеспечения")
.MustAsync(async (entity, value, c) => await AppInWorkIsUnique(entity))
.WithMessage("Задание на выполнение работ с такими ПО и Работой уже существует");
.WithMessage("Указан несуществующий Id программного обеспечения");
//.MustAsync(async (entity, value, c) => await AppInWorkIsUnique(entity))
// .WithMessage("Задание на выполнение работ с такими ПО и работой уже существует");
//.WithMessage("У данного задания на выполнение работ указан несуществующий Id программного обеспечения");
@@ -123,21 +123,21 @@ namespace PARR.API.Validators
return true;
}
private async Task<bool> AppInWorkIsUnique(ApplicationInWorkRequest request)
{
//уникальная запись по полям ApplicationId, WorkId
//private async Task<bool> AppInWorkIsUnique(ApplicationInWorkRequest request)
//{
// //уникальная запись по полям ApplicationId, WorkId
var existSameAiW = await applicationsInWorkService.GetAsync(request.ApplicationId, request.WorkId);
// var existSameAiW = await applicationsInWorkService.GetAsync(request.ApplicationId, request.WorkId);
//TODO: тут спорно, нужна ли эта проверка? Мы же можем создать несколько РР на одно и тоже ПО но с разным расписанием?
//к тому же, в методе update, такой проверки нет!
//if (existSameAiW != null)
// return BadRequest(new Response(false, new List<ErrorModel> {
// new ErrorModel { Message = $"Уже существует задание на выполнение работ для программного обеспечения id({request.ApplicationId}) и работой id({request.WorkId})." } }
// ));
// //TODO: тут спорно, нужна ли эта проверка? Мы же можем создать несколько РР на одно и тоже ПО но с разным расписанием?
// //к тому же, в методе update, такой проверки нет!
// //if (existSameAiW != null)
// // return BadRequest(new Response(false, new List<ErrorModel> {
// // new ErrorModel { Message = $"Уже существует задание на выполнение работ для программного обеспечения id({request.ApplicationId}) и работой id({request.WorkId})." } }
// // ));
return existSameAiW == null;
}
// return existSameAiW == null;
//}
private async Task<bool> IsWorkExist(ApplicationInWorkRequest request)
{