Фикс редактирования скважины

Основная проблема была в том, что после редактирования списка компаний для скважины не сбрасывался кэш. Я добавил вызов метода DropCacheRelationCompanyWell и сделал небольшой рефакторинг метода обновления.
This commit is contained in:
parent 65a7e072d6
commit 16eccb0e33

View File

@ -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));
var newRelations = dto.Companies.Select(c => new RelationCompanyWell { IdWell = dto.Id, IdCompany = c.Id });
DropCacheRelationCompanyWell();
var newRelations = dto.Companies
.Select(c => new RelationCompanyWell
{
IdWell = dto.Id,
IdCompany = c.Id
});
dbContext.RelationCompaniesWells.AddRange(newRelations);
}