feat(all): исправления после добавления таблицы WorkGroup. Доработана логика генерации шаблонов с учетом рабочих групп
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
using FluentValidation;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using PARR.API.Contracts.V1.Requests;
|
||||
using PARR.API.Contracts.V1.Responses.Base;
|
||||
using PARR.DAL.Services.Interfaces;
|
||||
|
||||
namespace PARR.API.Validators
|
||||
@@ -10,17 +10,19 @@ namespace PARR.API.Validators
|
||||
private readonly IApplicationsInWorkService applicationsInWorkService;
|
||||
private readonly IWorkService workService;
|
||||
private readonly IEsppSchTypeConfigService esppSchTypeConfigService;
|
||||
private readonly IWorkGroupService workGroupService;
|
||||
|
||||
public ApplicationInWorkValidator(
|
||||
IApplicationsInWorkService applicationsInWorkService,
|
||||
IWorkService workService,
|
||||
IEsppSchTypeConfigService esppSchTypeConfigService
|
||||
IEsppSchTypeConfigService esppSchTypeConfigService,
|
||||
IWorkGroupService workGroupService
|
||||
)
|
||||
{
|
||||
this.applicationsInWorkService = applicationsInWorkService;
|
||||
this.workService = workService;
|
||||
this.esppSchTypeConfigService = esppSchTypeConfigService;
|
||||
|
||||
this.workGroupService = workGroupService;
|
||||
|
||||
RuleFor(t => t.TemplateDuration)
|
||||
.NotNull().NotEmpty()//.WithMessage("Длительность данного задания на выполнение работ не может быть пустым")
|
||||
@@ -45,8 +47,8 @@ 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("Задание на выполнение работ с такими ПО и работой уже существует");
|
||||
//.MustAsync(async (entity, value, c) => await AppInWorkIsUnique(entity))
|
||||
// .WithMessage("Задание на выполнение работ с такими ПО и работой уже существует");
|
||||
//.WithMessage("У данного задания на выполнение работ указан несуществующий Id программного обеспечения");
|
||||
|
||||
|
||||
@@ -89,6 +91,18 @@ namespace PARR.API.Validators
|
||||
// .When(t => t.Schedule != null).WithMessage("Не удалось найти подходящую конфигруцию планировщика задания на выполнение работ");
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
RuleFor(t => t.WorkGroups)
|
||||
.MustAsync(async (entity, value, c) => await IsWorkGroupsExistAsync(entity))
|
||||
.WithMessage("Указаные несуществующие Id рабочих групп");
|
||||
}
|
||||
|
||||
private async Task<bool> IsWorkGroupsExistAsync(ApplicationInWorkRequest entity)
|
||||
{
|
||||
var result = await workGroupService.Get().Where(t => entity.WorkGroups.Contains(t.Id)).ToListAsync();
|
||||
|
||||
return entity.WorkGroups.Count() == result.Count();
|
||||
}
|
||||
|
||||
//private bool IsEsppSchValuesExist(ApplicationInWorkRequest request)
|
||||
|
||||
Reference in New Issue
Block a user