feat(api): JobControl переписан метод Create+Валидация

This commit is contained in:
Mikhail Kuznetsov
2025-09-11 16:03:51 +10:00
parent 76c289cef2
commit 39eb8ddc2c
10 changed files with 295 additions and 80 deletions

View File

@@ -1,6 +1,8 @@
using AutoMapper;
using PARR.API.Contracts.V1.Requests;
using PARR.API.Contracts.V1.Requests.Queries;
using PARR.DAL.DomainModels;
using PARR.DAL.Models.Job;
namespace PARR.API.MappingProfiles
{
@@ -9,6 +11,37 @@ namespace PARR.API.MappingProfiles
public RequestToDomainProfile()
{
CreateMap<PaginationQuery, PaginationFilter>();
CreateMap<JobRequest, Job>()
.ForMember(d => d.Id, o => o.MapFrom(s => Guid.NewGuid()))
.ForMember(d => d.DateCreated, o => o.MapFrom(s => DateTimeOffset.UtcNow))
.AfterMap((s, d) =>
{
if (d.UnitFilters != null)
foreach (var unitFilter in d.UnitFilters)
unitFilter.JobId = d.Id;
});
CreateMap<UnitFilterRequest, JobUnitFilter>()
.ForMember(d => d.Id, o => o.MapFrom(s => Guid.NewGuid()))
.ForMember(d => d.DateCreated, o => o.MapFrom(s => DateTimeOffset.UtcNow))
.ForMember(d => d.UnitFilter, o => o.MapFrom(s => s.UnitFilterMask))
.AfterMap((s, d) =>
{
if (d.FieldFilters != null)
foreach (var fieldFilter in d.FieldFilters)
fieldFilter.UnitFilterId = d.Id;
if (d.RelationshipFilters != null)
foreach (var relationshipFilter in d.RelationshipFilters)
relationshipFilter.UnitFilterId = d.Id;
});
CreateMap<FieldFilterRequest, FieldFilter>()
.ForMember(d => d.Id, o => o.MapFrom(s => Guid.NewGuid()))
.ForMember(d => d.DateCreated, o => o.MapFrom(s => DateTimeOffset.UtcNow));
CreateMap<RelationshipFilterRequest, JobRelationshipFilter>();
}
}
}