fix(api): JobControl добавлена выборка сведений о Field для RelationshipFilter. Переписан метод Update

This commit is contained in:
Mikhail Kuznetsov
2025-09-23 10:38:19 +10:00
parent 1f08b46085
commit 6034b137d2

View File

@@ -129,6 +129,7 @@ namespace PARR.API.Controllers.V1
.ThenInclude(t => t.UnitField)
.Include(t => t.UnitFilters)
.ThenInclude(t => t.RelationshipFilters.OrderBy(o => o.UnitField!.AihitName))
.ThenInclude(t => t.UnitField)
.FirstOrDefaultAsync(t => t.Id == id);
if (job == null)
@@ -323,7 +324,38 @@ namespace PARR.API.Controllers.V1
private void UpdateUnitFilters(Job orig, Job mappedRequest)
{
//Сразу удаляем UnitFilter которых нет
orig.UnitFilters.Clear();
foreach (var mappedUnitFilter in mappedRequest.UnitFilters)
{
var newUnitFilter = new JobUnitFilter
{
UnitFilter = mappedUnitFilter.UnitFilter,
DateCreated = DateTimeOffset.UtcNow,
JobId = orig.Id
};
foreach (var newRequestFieldFilter in mappedUnitFilter.FieldFilters)
{
var newFieldFilter = CreateFieldFilter(newUnitFilter.Id, newRequestFieldFilter.FieldId, newRequestFieldFilter.ValueMask);
newUnitFilter.FieldFilters.Add(newFieldFilter);
}
foreach (var newRequestRelationshipFilter in mappedUnitFilter.RelationshipFilters)
{
var newRelationshipFilter = CreateRelationshipFilter(newRequestRelationshipFilter.FieldId,
newRequestRelationshipFilter.IsParent,
newRequestRelationshipFilter.IsFullMatch,
newRequestRelationshipFilter.IsInverse,
newRequestRelationshipFilter.ValueMask);
newUnitFilter.RelationshipFilters.Add(newRelationshipFilter);
}
orig.UnitFilters.Add(newUnitFilter);
}
/*//Сразу удаляем UnitFilter которых нет
var toDelete = orig.UnitFilters.Where(t => !mappedRequest.UnitFilters.Any(e => e.Id == t.Id));
foreach (var item in toDelete)
orig.UnitFilters.Remove(item);
@@ -435,7 +467,7 @@ namespace PARR.API.Controllers.V1
}
#endregion
}
}
}*/
}
private static JobRelationshipFilter CreateRelationshipFilter(Guid fieldId, bool isParent, bool isFullMatch, bool isInverse, string valueMask)