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);
}
}
}