forked from ddrilling/AsbCloudServer
Фикс редактирования скважины
Основная проблема была в том, что после редактирования списка компаний для скважины не сбрасывался кэш. Я добавил вызов метода DropCacheRelationCompanyWell и сделал небольшой рефакторинг метода обновления.
This commit is contained in:
parent
65a7e072d6
commit
16eccb0e33
@ -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);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user