using System; using Application.Ringtoets.Storage.DbContext; using Ringtoets.Piping.Data; namespace Application.Ringtoets.Storage.Create { /// /// Extension methods for related to creating an . /// internal static class PipingOutputCreateExtensions { /// /// Creates a based on the information /// of the . /// /// The calculation output for piping failure mechanism to /// create a database entity for. /// The object keeping track of create operations. /// A new . /// Thrown when is null. internal static PipingCalculationOutputEntity Create(this PipingOutput output, PersistenceRegistry registry) { if (registry == null) { throw new ArgumentNullException("registry"); } var entity = new PipingCalculationOutputEntity { HeaveFactorOfSafety = GetNullableDecimal(output.HeaveFactorOfSafety), HeaveZValue = GetNullableDecimal(output.HeaveZValue), SellmeijerFactorOfSafety = GetNullableDecimal(output.SellmeijerFactorOfSafety), SellmeijerZValue = GetNullableDecimal(output.SellmeijerZValue), UpliftFactorOfSafety = GetNullableDecimal(output.UpliftFactorOfSafety), UpliftZValue = GetNullableDecimal(output.UpliftZValue) }; return entity; } private static decimal? GetNullableDecimal(double parameterValue) { if (double.IsNaN(parameterValue)) { return null; } return Convert.ToDecimal(parameterValue); } } }