Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Create/PersistenceRegistry.cs
===================================================================
diff -u -r5f1e64c97c72ebffee680a97eb567696a9972c65 -rc7ac7512bbc38609f60d8d8e383f3186cc79a156
--- Application/Ringtoets/src/Application.Ringtoets.Storage/Create/PersistenceRegistry.cs (.../PersistenceRegistry.cs) (revision 5f1e64c97c72ebffee680a97eb567696a9972c65)
+++ Application/Ringtoets/src/Application.Ringtoets.Storage/Create/PersistenceRegistry.cs (.../PersistenceRegistry.cs) (revision c7ac7512bbc38609f60d8d8e383f3186cc79a156)
@@ -537,110 +537,155 @@
/// The from which to remove the entities.
internal void RemoveUntouched(IRingtoetsEntities dbContext)
{
- var projectEntities = dbContext.ProjectEntities;
- var projectEntitiesToRemove = projectEntities
- .Local
- .Where(entity => entity.ProjectEntityId > 0)
- .Except(projects.Keys);
- projectEntities.RemoveRange(projectEntitiesToRemove);
+ foreach (ProjectEntity projectEntities in dbContext.ProjectEntities
+ .Where(e => e.ProjectEntityId > 0)
+ .ToArray())
+ {
+ if (!projects.ContainsKey(projectEntities))
+ {
+ dbContext.ProjectEntities.Remove(projectEntities);
+ }
+ }
- var assessmentSectionEntities = dbContext.AssessmentSectionEntities;
- var assessmentSectionEntitiesToRemove = assessmentSectionEntities
- .Local
- .Where(entity => entity.AssessmentSectionEntityId > 0)
- .Except(assessmentSections.Keys);
- assessmentSectionEntities.RemoveRange(assessmentSectionEntitiesToRemove);
+ foreach (AssessmentSectionEntity assessmentSectionEntity in dbContext.AssessmentSectionEntities
+ .Where(e => e.AssessmentSectionEntityId > 0)
+ .ToArray())
+ {
+ if (!assessmentSections.ContainsKey(assessmentSectionEntity))
+ {
+ dbContext.AssessmentSectionEntities.Remove(assessmentSectionEntity);
+ }
+ }
- var failureMechanismEntities = dbContext.FailureMechanismEntities;
- var failureMechanismEntitiesToRemove = failureMechanismEntities
- .Local
- .Where(entity => entity.FailureMechanismEntityId > 0)
- .Except(failureMechanisms.Keys);
- failureMechanismEntities.RemoveRange(failureMechanismEntitiesToRemove);
+ foreach (FailureMechanismEntity failureMechanismEntity in dbContext.FailureMechanismEntities
+ .Where(e => e.FailureMechanismEntityId > 0)
+ .ToArray())
+ {
+ if (!failureMechanisms.ContainsKey(failureMechanismEntity))
+ {
+ dbContext.FailureMechanismEntities.Remove(failureMechanismEntity);
+ }
+ }
- var failureMechanismSectionEntities = dbContext.FailureMechanismSectionEntities;
- var failureMechanismSectionEntitiesToRemove = failureMechanismSectionEntities
- .Local
- .Where(entity => entity.FailureMechanismSectionEntityId > 0)
- .Except(failureMechanismSections.Keys);
- failureMechanismSectionEntities.RemoveRange(failureMechanismSectionEntitiesToRemove);
+ foreach (FailureMechanismSectionEntity failureMechanismSectionEntity in dbContext.FailureMechanismSectionEntities
+ .Where(e => e.FailureMechanismSectionEntityId > 0)
+ .ToArray())
+ {
+ if (!failureMechanismSections.ContainsKey(failureMechanismSectionEntity))
+ {
+ dbContext.FailureMechanismSectionEntities.Remove(failureMechanismSectionEntity);
+ }
+ }
- var hydraulicLocationEntities = dbContext.HydraulicLocationEntities;
- var hydraulicLocationEntitiesToRemove = hydraulicLocationEntities
- .Local
- .Where(entity => entity.HydraulicLocationEntityId > 0)
- .Except(hydraulicLocations.Keys);
- hydraulicLocationEntities.RemoveRange(hydraulicLocationEntitiesToRemove);
+ foreach (HydraulicLocationEntity hydraulicLocationEntity in dbContext.HydraulicLocationEntities
+ .Where(e => e.HydraulicLocationEntityId > 0)
+ .ToArray())
+ {
+ if (!hydraulicLocations.ContainsKey(hydraulicLocationEntity))
+ {
+ dbContext.HydraulicLocationEntities.Remove(hydraulicLocationEntity);
+ }
+ }
- var calculationGroupEntities = dbContext.CalculationGroupEntities;
- var calculationGroupEntitiesToRemove = calculationGroupEntities
- .Local
- .Where(entity => entity.CalculationGroupEntityId > 0)
- .Except(calculationGroups.Keys);
- calculationGroupEntities.RemoveRange(calculationGroupEntitiesToRemove);
+ foreach (CalculationGroupEntity calculationGroupEntity in dbContext.CalculationGroupEntities
+ .Where(e => e.CalculationGroupEntityId > 0)
+ .ToArray())
+ {
+ if (!calculationGroups.ContainsKey(calculationGroupEntity))
+ {
+ dbContext.CalculationGroupEntities.Remove(calculationGroupEntity);
+ }
+ }
- var pipingCalculationEntities = dbContext.PipingCalculationEntities;
- var pipingCalculationEntitiesToRemove = pipingCalculationEntities
- .Local
- .Where(entity => entity.PipingCalculationEntityId > 0)
- .Except(pipingCalculations.Keys);
- pipingCalculationEntities.RemoveRange(pipingCalculationEntitiesToRemove);
+ foreach (PipingCalculationEntity pipingCalculationEntity in dbContext.PipingCalculationEntities
+ .Where(e => e.PipingCalculationEntityId > 0)
+ .ToArray())
+ {
+ if (!pipingCalculations.ContainsKey(pipingCalculationEntity))
+ {
+ dbContext.PipingCalculationEntities.Remove(pipingCalculationEntity);
+ }
+ }
- var stochasticSoilModelEntities = dbContext.StochasticSoilModelEntities;
- var stochasticSoilModelEntitiesToRemove = stochasticSoilModelEntities
- .Local
- .Where(entity => entity.StochasticSoilModelEntityId > 0)
- .Except(stochasticSoilModels.Keys);
- stochasticSoilModelEntities.RemoveRange(stochasticSoilModelEntitiesToRemove);
+ foreach (StochasticSoilModelEntity stochasticSoilModelEntity in dbContext.StochasticSoilModelEntities
+ .Where(e => e.StochasticSoilModelEntityId > 0)
+ .ToArray())
+ {
+ if (!stochasticSoilModels.ContainsKey(stochasticSoilModelEntity))
+ {
+ dbContext.StochasticSoilModelEntities.Remove(stochasticSoilModelEntity);
+ }
+ }
- var stochasticSoilProfileEntities = dbContext.StochasticSoilProfileEntities;
- var stochasticSoilProfileEntitiesToRemove = stochasticSoilProfileEntities
- .Local
- .Where(entity => entity.StochasticSoilProfileEntityId > 0)
- .Except(stochasticSoilProfiles.Keys);
- stochasticSoilProfileEntities.RemoveRange(stochasticSoilProfileEntitiesToRemove);
+ foreach (StochasticSoilProfileEntity stochasticSoilProfileEntity in dbContext.StochasticSoilProfileEntities
+ .Where(e => e.StochasticSoilProfileEntityId > 0)
+ .ToArray())
+ {
+ if (!stochasticSoilProfiles.ContainsKey(stochasticSoilProfileEntity))
+ {
+ dbContext.StochasticSoilProfileEntities.Remove(stochasticSoilProfileEntity);
+ }
+ }
- var soilProfileEntities = dbContext.SoilProfileEntities;
- var soilProfileEntitiesToRemove = soilProfileEntities
- .Local
- .Where(entity => entity.SoilProfileEntityId > 0)
- .Except(soilProfiles.Keys);
- soilProfileEntities.RemoveRange(soilProfileEntitiesToRemove);
+ foreach (SoilProfileEntity soilProfileEntity in dbContext.SoilProfileEntities
+ .Where(e => e.SoilProfileEntityId > 0)
+ .ToArray())
+ {
+ if (!soilProfiles.ContainsKey(soilProfileEntity))
+ {
+ dbContext.SoilProfileEntities.Remove(soilProfileEntity);
+ }
+ }
- var soilLayerEntities = dbContext.SoilLayerEntities;
- var soilLayerEntitiesToRemove = soilLayerEntities
- .Local
- .Where(entity => entity.SoilLayerEntityId > 0)
- .Except(soilLayers.Keys);
- soilLayerEntities.RemoveRange(soilLayerEntitiesToRemove);
+ foreach (SoilLayerEntity soilLayerEntity in dbContext.SoilLayerEntities
+ .Where(e => e.SoilLayerEntityId > 0)
+ .ToArray())
+ {
+ if (!soilLayers.ContainsKey(soilLayerEntity))
+ {
+ dbContext.SoilLayerEntities.Remove(soilLayerEntity);
+ }
+ }
- var surfaceLineEntities = dbContext.SurfaceLineEntities;
- var surfaceLineEntitiesToRemove = surfaceLineEntities
- .Local
- .Where(entity => entity.SurfaceLineEntityId > 0)
- .Except(surfaceLines.Keys);
- surfaceLineEntities.RemoveRange(surfaceLineEntitiesToRemove);
+ foreach (SurfaceLineEntity surfaceLineEntity in dbContext.SurfaceLineEntities
+ .Where(e => e.SurfaceLineEntityId > 0)
+ .ToArray())
+ {
+ if (!surfaceLines.ContainsKey(surfaceLineEntity))
+ {
+ dbContext.SurfaceLineEntities.Remove(surfaceLineEntity);
+ }
+ }
- var surfaceLinePointEntities = dbContext.SurfaceLinePointEntities;
- var surfaceLinePointEntitiesToRemove = surfaceLinePointEntities
- .Local
- .Where(entity => entity.SurfaceLinePointEntityId > 0)
- .Except(surfaceLinePoints.Keys);
- surfaceLinePointEntities.RemoveRange(surfaceLinePointEntitiesToRemove);
+ foreach (SurfaceLinePointEntity surfaceLinePointEntity in dbContext.SurfaceLinePointEntities
+ .Where(e => e.SurfaceLinePointEntityId > 0)
+ .ToArray())
+ {
+ if (!surfaceLinePoints.ContainsKey(surfaceLinePointEntity))
+ {
+ dbContext.SurfaceLinePointEntities.Remove(surfaceLinePointEntity);
+ }
+ }
- var characteristicPointEntities = dbContext.CharacteristicPointEntities;
- var characteristicPointEntitiesToRemove = characteristicPointEntities
- .Local
- .Where(entity => entity.CharacteristicPointEntityId > 0)
- .Except(characteristicPoints.Keys);
- characteristicPointEntities.RemoveRange(characteristicPointEntitiesToRemove);
+ foreach (CharacteristicPointEntity characteristicPointEntity in dbContext.CharacteristicPointEntities
+ .Where(e => e.CharacteristicPointEntityId > 0)
+ .ToArray())
+ {
+ if (!characteristicPoints.ContainsKey(characteristicPointEntity))
+ {
+ dbContext.CharacteristicPointEntities.Remove(characteristicPointEntity);
+ }
+ }
- var pipingFailureMechanismMetaEntities = dbContext.PipingFailureMechanismMetaEntities;
- var pipingFailureMechanismMetaEntitiesToRemove = pipingFailureMechanismMetaEntities
- .Local
- .Where(entity => entity.PipingFailureMechanismMetaEntityId > 0)
- .Except(pipingProbabilityAssessmentInputs.Keys);
- pipingFailureMechanismMetaEntities.RemoveRange(pipingFailureMechanismMetaEntitiesToRemove);
+ foreach (PipingFailureMechanismMetaEntity pipingFailureMechanismMetaEntity in dbContext.PipingFailureMechanismMetaEntities
+ .Where(e => e.PipingFailureMechanismMetaEntityId > 0)
+ .ToArray())
+ {
+ if (!pipingProbabilityAssessmentInputs.ContainsKey(pipingFailureMechanismMetaEntity))
+ {
+ dbContext.PipingFailureMechanismMetaEntities.Remove(pipingFailureMechanismMetaEntity);
+ }
+ }
}
private bool ContainsValue(Dictionary collection, U model)
Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Update/AssessmentSectionUpdateExtensions.cs
===================================================================
diff -u -rbba617101367a21a38bf41ad520662058b9012af -rc7ac7512bbc38609f60d8d8e383f3186cc79a156
--- Application/Ringtoets/src/Application.Ringtoets.Storage/Update/AssessmentSectionUpdateExtensions.cs (.../AssessmentSectionUpdateExtensions.cs) (revision bba617101367a21a38bf41ad520662058b9012af)
+++ Application/Ringtoets/src/Application.Ringtoets.Storage/Update/AssessmentSectionUpdateExtensions.cs (.../AssessmentSectionUpdateExtensions.cs) (revision c7ac7512bbc38609f60d8d8e383f3186cc79a156)
@@ -81,15 +81,21 @@
private static void UpdateStandAloneFailureMechanisms(AssessmentSection section, PersistenceRegistry registry, IRingtoetsEntities context)
{
section.MacrostabilityInwards.Update(registry, context);
+ section.MacrostabilityOutwards.Update(registry, context);
+ section.Microstability.Update(registry, context);
section.StabilityStoneCover.Update(registry, context);
section.WaveImpactAsphaltCover.Update(registry, context);
+ section.WaterPressureAsphaltCover.Update(registry, context);
section.GrassCoverErosionOutwards.Update(registry, context);
section.GrassCoverSlipOffOutwards.Update(registry, context);
+ section.GrassCoverSlipOffInwards.Update(registry, context);
section.HeightStructures.Update(registry, context);
section.ClosingStructure.Update(registry, context);
section.PipingStructure.Update(registry, context);
section.StrengthStabilityPointConstruction.Update(registry, context);
+ section.StrengthStabilityLengthwiseConstruction.Update(registry, context);
section.DuneErosion.Update(registry, context);
+ section.TechnicalInnovation.Update(registry, context);
}
private static AssessmentSectionEntity GetCorrespondingAssessmentSectionEntity(AssessmentSection section, IRingtoetsEntities context)
Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Update/RingtoetsPipingSurfaceLineUpdateExtensions.cs
===================================================================
diff -u -rae6f0c6b534ca650e160ae6d9c0bc90369d25c68 -rc7ac7512bbc38609f60d8d8e383f3186cc79a156
--- Application/Ringtoets/src/Application.Ringtoets.Storage/Update/RingtoetsPipingSurfaceLineUpdateExtensions.cs (.../RingtoetsPipingSurfaceLineUpdateExtensions.cs) (revision ae6f0c6b534ca650e160ae6d9c0bc90369d25c68)
+++ Application/Ringtoets/src/Application.Ringtoets.Storage/Update/RingtoetsPipingSurfaceLineUpdateExtensions.cs (.../RingtoetsPipingSurfaceLineUpdateExtensions.cs) (revision c7ac7512bbc38609f60d8d8e383f3186cc79a156)
@@ -160,16 +160,17 @@
SurfaceLinePointEntity geometryPointEntity = registry.GetSurfaceLinePoint(currentCharacteristicPoint);
if (characteristicPointEntity == null)
{
- geometryPointEntity.CharacteristicPointEntities.Add(new CharacteristicPointEntity
+ characteristicPointEntity = new CharacteristicPointEntity
{
CharacteristicPointType = typeValue
- });
+ };
+ geometryPointEntity.CharacteristicPointEntities.Add(characteristicPointEntity);
}
else if (characteristicPointEntity.SurfaceLinePointEntity != geometryPointEntity)
{
characteristicPointEntity.SurfaceLinePointEntity = geometryPointEntity;
- registry.Register(characteristicPointEntity, currentCharacteristicPoint);
}
+ registry.Register(characteristicPointEntity, currentCharacteristicPoint);
}
}
Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/ProjectUpdateExtensionsTest.cs
===================================================================
diff -u -r9d77e28eef1dda363f4854ba2011a0107588d82c -rc7ac7512bbc38609f60d8d8e383f3186cc79a156
--- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/ProjectUpdateExtensionsTest.cs (.../ProjectUpdateExtensionsTest.cs) (revision 9d77e28eef1dda363f4854ba2011a0107588d82c)
+++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/ProjectUpdateExtensionsTest.cs (.../ProjectUpdateExtensionsTest.cs) (revision c7ac7512bbc38609f60d8d8e383f3186cc79a156)
@@ -292,6 +292,30 @@
DuneErosion =
{
StorageId = 1
+ },
+ GrassCoverSlipOffInwards =
+ {
+ StorageId = 1
+ },
+ MacrostabilityOutwards =
+ {
+ StorageId = 1
+ },
+ Microstability =
+ {
+ StorageId = 1
+ },
+ StrengthStabilityLengthwiseConstruction =
+ {
+ StorageId = 1
+ },
+ TechnicalInnovation =
+ {
+ StorageId = 1
+ },
+ WaterPressureAsphaltCover =
+ {
+ StorageId = 1
}
};
var project = new Project
@@ -305,11 +329,11 @@
var assessmentSectionEntity = new AssessmentSectionEntity
{
- AssessmentSectionEntityId = 1
+ AssessmentSectionEntityId = section.StorageId
};
var projectEntity = new ProjectEntity
{
- ProjectEntityId = 1,
+ ProjectEntityId = project.StorageId,
AssessmentSectionEntities =
{
assessmentSectionEntity