using System.Diagnostics.Contracts;
using Deltares.Geotechnics;
using Deltares.Geotechnics.Soils;
using Deltares.Standard;
using Deltares.Standard.Language;
using Deltares.Standard.Validation;
namespace Deltares.Stability
{
///
/// Repairer for .
/// to add new data point if no data available.
///
public class MissingPreconsolidationStressRepairer : IRepairer
{
///
/// for in case
/// no preconsolidation data is available while being required.
///
public const string NoPreconsolidationStressDataId = "NO_PRE_CON_DATA";
public void Repair(object subject, string property, string id)
{
CheckPreconditions(subject, property, id);
var model = (StabilityModel) subject;
if (model.SoilProfile.PreconsolidationStresses.Count == 0)
{
model.SoilProfile.PreconsolidationStresses.Add(new PreConsolidationStress());
}
}
public string GetRepairDescription(object subject, string property, string id)
{
CheckPreconditions(subject, property, id);
return this.Translate("MissingPreconsolidationStressRepairerDescription");
}
///
/// Checks the preconditions for this class.
///
/// The object to be repaired.
/// The relevant property.
/// The identifier for the type of problem.
private static void CheckPreconditions(object subject, string property, string id)
{
Contract.Requires(subject is StabilityModel);
Contract.Requires(id == NoPreconsolidationStressDataId);
}
}
}