feat(api): appInWorkContoller добавлен метод Create

This commit is contained in:
Mikhail Kuznetsov
2024-03-27 11:13:52 +10:00
parent 5a14cdd3c2
commit 30c190f62f
4 changed files with 149 additions and 6 deletions

View File

@@ -0,0 +1,54 @@
using FluentValidation;
using PARR.API.Contracts.V1.Requests;
using PARR.DAL.Services.Interfaces;
namespace PARR.API.Validators
{
public class ApplicationInWorkValidator : AbstractValidator<ApplicationInWorkRequest>
{
private readonly IApplicationsInWorkService applicationsInWorkService;
private readonly IWorkService workService;
public ApplicationInWorkValidator(
IApplicationsInWorkService applicationsInWorkService,
IWorkService workService
)
{
this.applicationsInWorkService = applicationsInWorkService;
this.workService = workService;
RuleFor(t => t.TemplateDuration)
.NotNull().NotEmpty().WithMessage("Длительность данного задания на выполнение работ не может быть пустым")
.Matches("^\\d{1,2}\\s\\d{2}[:]\\d{2}[:]\\d{2}$")
.WithMessage("Длительность данного задания на выполнение работ должна соответствовать шаблону dd hh:mm:ss(7 00:00:00)");
RuleFor(t => t.ShortDescription)
.NotNull().NotEmpty().WithMessage("Краткое описание данного задания на выполнение работ не может быть пустым");
RuleFor(t => t.FullDescription)
.NotNull().NotEmpty().WithMessage("Подробное описание данного задания на выполнение работ не может быть пустым");
RuleFor(t => t.Solution)
.NotNull().NotEmpty().WithMessage("Решение данного задания на выполнение работ не может быть пустым");
RuleFor(t => t.WorkId)
.MustAsync(async (entity, value, c) => await IsWorkExist(entity))
.WithMessage("У данного задания на выполнение работ указан несуществующий Id работы");
RuleFor(t => t.ApplicationId)
.MustAsync(async (entity, value, c) => await IsApplicationExist(entity))
.WithMessage("У данного задания на выполнение работ указан несуществующий Id программного обеспечения");
}
private async Task<bool> IsWorkExist(ApplicationInWorkRequest request)
{
return await workService.GetAsync(request.WorkId) != null;
}
private async Task<bool> IsApplicationExist(ApplicationInWorkRequest request)
{
return await workService.GetAsync(request.WorkId) != null;
}
}
}