From 16eccb0e33ac5232a0bb518a74dec79b182e1122 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A1=D1=82=D0=B5=D0=BF=D0=B0=D0=BD=D0=BE=D0=B2=20=D0=94?= =?UTF-8?q?=D0=BC=D0=B8=D1=82=D1=80=D0=B8=D0=B9=20=D0=90=D0=BB=D0=B5=D0=BA?= =?UTF-8?q?=D1=81=D0=B0=D0=BD=D0=B4=D1=80=D0=BE=D0=B2=D0=B8=D1=87?= Date: Tue, 4 Jul 2023 15:45:04 +0500 Subject: [PATCH] =?UTF-8?q?=D0=A4=D0=B8=D0=BA=D1=81=20=D1=80=D0=B5=D0=B4?= =?UTF-8?q?=D0=B0=D0=BA=D1=82=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8?= =?UTF-8?q?=D1=8F=20=D1=81=D0=BA=D0=B2=D0=B0=D0=B6=D0=B8=D0=BD=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Основная проблема была в том, что после редактирования списка компаний для скважины не сбрасывался кэш. Я добавил вызов метода DropCacheRelationCompanyWell и сделал небольшой рефакторинг метода обновления. --- AsbCloudInfrastructure/Services/WellService.cs | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/AsbCloudInfrastructure/Services/WellService.cs b/AsbCloudInfrastructure/Services/WellService.cs index d55bd2a5..6d70dd9c 100644 --- a/AsbCloudInfrastructure/Services/WellService.cs +++ b/AsbCloudInfrastructure/Services/WellService.cs @@ -173,16 +173,24 @@ namespace AsbCloudInfrastructure.Services throw new ArgumentInvalidException("Текущее состояние работы скважины указано неправильно.", nameof(dto)); var oldRelations = (await GetCacheRelationCompanyWellAsync(token)) - .Where(r => r.IdWell == dto.Id); + .Where(r => r.IdWell == dto.Id).ToArray(); - if (dto.Companies.Count() != oldRelations.Count() || - dto.Companies.Any(c => !oldRelations.Any(oldC => oldC.IdCompany == c.Id))) + if (dto.Companies.Count() != oldRelations.Length || + dto.Companies.Any(c => oldRelations.All(oldC => oldC.IdCompany != c.Id))) { dbContext.RelationCompaniesWells .RemoveRange(dbContext.RelationCompaniesWells .Where(r => r.IdWell == dto.Id)); + + DropCacheRelationCompanyWell(); - var newRelations = dto.Companies.Select(c => new RelationCompanyWell { IdWell = dto.Id, IdCompany = c.Id }); + var newRelations = dto.Companies + .Select(c => new RelationCompanyWell + { + IdWell = dto.Id, + IdCompany = c.Id + }); + dbContext.RelationCompaniesWells.AddRange(newRelations); }