forked from ddrilling/AsbCloudServer
Merge pull request 'Фикс редактирования скважины' (#70) from feature/fix_well_update into dev
Reviewed-on: http://test.digitaldrilling.ru:8080/DDrilling/AsbCloudServer/pulls/70
This commit is contained in:
commit
b8c9c37b49
@ -173,16 +173,24 @@ namespace AsbCloudInfrastructure.Services
|
|||||||
throw new ArgumentInvalidException("Текущее состояние работы скважины указано неправильно.", nameof(dto));
|
throw new ArgumentInvalidException("Текущее состояние работы скважины указано неправильно.", nameof(dto));
|
||||||
|
|
||||||
var oldRelations = (await GetCacheRelationCompanyWellAsync(token))
|
var oldRelations = (await GetCacheRelationCompanyWellAsync(token))
|
||||||
.Where(r => r.IdWell == dto.Id);
|
.Where(r => r.IdWell == dto.Id).ToArray();
|
||||||
|
|
||||||
if (dto.Companies.Count() != oldRelations.Count() ||
|
if (dto.Companies.Count() != oldRelations.Length ||
|
||||||
dto.Companies.Any(c => !oldRelations.Any(oldC => oldC.IdCompany == c.Id)))
|
dto.Companies.Any(c => oldRelations.All(oldC => oldC.IdCompany != c.Id)))
|
||||||
{
|
{
|
||||||
dbContext.RelationCompaniesWells
|
dbContext.RelationCompaniesWells
|
||||||
.RemoveRange(dbContext.RelationCompaniesWells
|
.RemoveRange(dbContext.RelationCompaniesWells
|
||||||
.Where(r => r.IdWell == dto.Id));
|
.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);
|
dbContext.RelationCompaniesWells.AddRange(newRelations);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user