/// <summary> /// Tries to set the relevant characteristic points from the <paramref name="characteristicPoints"/> /// on the <paramref name="surfaceLine"/>. /// </summary> /// <param name="surfaceLine">The surface line to set the characteristic points for.</param> /// <param name="characteristicPoints">The characteristic points to set, if the collection is valid.</param> /// <exception cref="ArgumentNullException">Thrown when <paramref name="surfaceLine"/> is <c>null</c>.</exception> /// <exception cref="ImportedDataTransformException">Thrown when <paramref name="characteristicPoints"/> defines /// a dike toe at polder side in front of the dike toe at river side.</exception> public static void SetCharacteristicPoints(this PipingSurfaceLine surfaceLine, CharacteristicPoints characteristicPoints) { if (surfaceLine == null) { throw new ArgumentNullException(nameof(surfaceLine)); } if (characteristicPoints == null) { return; } surfaceLine.ValidateDikeToesInOrder(characteristicPoints); surfaceLine.TrySetDikeToeAtRiver(characteristicPoints.DikeToeAtRiver); surfaceLine.TrySetDitchDikeSide(characteristicPoints.DitchDikeSide); surfaceLine.TrySetBottomDitchDikeSide(characteristicPoints.BottomDitchDikeSide); surfaceLine.TrySetBottomDitchPolderSide(characteristicPoints.BottomDitchPolderSide); surfaceLine.TrySetDitchPolderSide(characteristicPoints.DitchPolderSide); surfaceLine.TrySetDikeToeAtPolder(characteristicPoints.DikeToeAtPolder); }