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