From 6034b137d209f3e6b387b8866cf7312ab43cc1f5 Mon Sep 17 00:00:00 2001 From: Mikhail Kuznetsov Date: Tue, 23 Sep 2025 10:38:19 +1000 Subject: [PATCH] =?UTF-8?q?fix(api):=20JobControl=20=D0=B4=D0=BE=D0=B1?= =?UTF-8?q?=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=B0=20=D0=B2=D1=8B=D0=B1=D0=BE?= =?UTF-8?q?=D1=80=D0=BA=D0=B0=20=D1=81=D0=B2=D0=B5=D0=B4=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D0=B9=20=D0=BE=20Field=20=D0=B4=D0=BB=D1=8F=20RelationshipFilt?= =?UTF-8?q?er.=20=D0=9F=D0=B5=D1=80=D0=B5=D0=BF=D0=B8=D1=81=D0=B0=D0=BD=20?= =?UTF-8?q?=D0=BC=D0=B5=D1=82=D0=BE=D0=B4=20Update?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PARR.API/Controllers/V1/JobController.cs | 36 ++++++++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) diff --git a/PARR.API/Controllers/V1/JobController.cs b/PARR.API/Controllers/V1/JobController.cs index 7f548644..2a024dc0 100644 --- a/PARR.API/Controllers/V1/JobController.cs +++ b/PARR.API/Controllers/V1/JobController.cs @@ -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)