Index: Riskeer/Common/src/Riskeer.Common.Forms/Helpers/HydraulicBoundaryLocationCalculationsNamingHelper.cs =================================================================== diff -u -r82467c07fff7af740cbc6bc1245471e522cd7f24 -rce14392e51813bf6afd142faeecbcd532e9ba62e --- Riskeer/Common/src/Riskeer.Common.Forms/Helpers/HydraulicBoundaryLocationCalculationsNamingHelper.cs (.../HydraulicBoundaryLocationCalculationsNamingHelper.cs) (revision 82467c07fff7af740cbc6bc1245471e522cd7f24) +++ Riskeer/Common/src/Riskeer.Common.Forms/Helpers/HydraulicBoundaryLocationCalculationsNamingHelper.cs (.../HydraulicBoundaryLocationCalculationsNamingHelper.cs) (revision ce14392e51813bf6afd142faeecbcd532e9ba62e) @@ -48,7 +48,7 @@ throw new ArgumentNullException(nameof(calculations)); } - var waterLevelCalculationsNameLookup = new Dictionary + var nonUniqueWaterLevelCalculationsNameLookup = new Dictionary { { assessmentSection.WaterLevelCalculationsForLowerLimitNorm, @@ -62,49 +62,47 @@ foreach (HydraulicBoundaryLocationCalculationsForTargetProbability calculationsForTargetProbability in assessmentSection.WaterLevelCalculationsForUserDefinedTargetProbabilities) { - waterLevelCalculationsNameLookup.Add(calculationsForTargetProbability.HydraulicBoundaryLocationCalculations, - noProbabilityValueDoubleConverter.ConvertToString(calculationsForTargetProbability.TargetProbability)); + nonUniqueWaterLevelCalculationsNameLookup.Add(calculationsForTargetProbability.HydraulicBoundaryLocationCalculations, + noProbabilityValueDoubleConverter.ConvertToString(calculationsForTargetProbability.TargetProbability)); } - if (!waterLevelCalculationsNameLookup.ContainsKey(calculations)) + if (!nonUniqueWaterLevelCalculationsNameLookup.ContainsKey(calculations)) { throw new InvalidOperationException("The provided calculations object is not part of the water level calculations within the assessment section."); } - return GetUniqueNameLookup(waterLevelCalculationsNameLookup)[calculations]; + return GetUniqueNameLookup(nonUniqueWaterLevelCalculationsNameLookup)[calculations]; } - private static Dictionary GetUniqueNameLookup(Dictionary waterLevelCalculationsNameLookup) + private static Dictionary GetUniqueNameLookup(IDictionary nonUniqueNameLookup) { - var waterLevelCalculationsUniqueNameLookup = new Dictionary(); + var uniqueNameLookup = new Dictionary(); - while (waterLevelCalculationsNameLookup.Any()) + while (nonUniqueNameLookup.Any()) { - KeyValuePair firstElement = waterLevelCalculationsNameLookup.First(); + KeyValuePair firstElement = nonUniqueNameLookup.First(); - IEnumerable> elementsWithNameOfFirstElement = - waterLevelCalculationsNameLookup.Where(e => e.Value.Equals(firstElement.Value)); + IList> elementsWithNonUniqueName = nonUniqueNameLookup.Where(e => e.Value.Equals(firstElement.Value)) + .ToList(); - int count = elementsWithNameOfFirstElement.Count(); - - if (count == 1) + if (elementsWithNonUniqueName.Count > 1) { - waterLevelCalculationsUniqueNameLookup.Add(firstElement.Key, firstElement.Value); - waterLevelCalculationsNameLookup.Remove(firstElement.Key); - } - else - { - for (var i = 0; i < count; i++) + for (var i = 0; i < elementsWithNonUniqueName.Count; i++) { - KeyValuePair element = elementsWithNameOfFirstElement.ElementAt(i); + KeyValuePair elementWithNonUniqueName = elementsWithNonUniqueName.ElementAt(i); - waterLevelCalculationsUniqueNameLookup.Add(element.Key, element.Value + $"({i + 1})"); - waterLevelCalculationsNameLookup.Remove(element.Key); + uniqueNameLookup.Add(elementWithNonUniqueName.Key, elementWithNonUniqueName.Value + $"({i + 1})"); + nonUniqueNameLookup.Remove(elementWithNonUniqueName.Key); } } + else + { + uniqueNameLookup.Add(firstElement.Key, firstElement.Value); + nonUniqueNameLookup.Remove(firstElement.Key); + } } - return waterLevelCalculationsUniqueNameLookup; + return uniqueNameLookup; } } } \ No newline at end of file