// Copyright (C) Stichting Deltares 2017. All rights reserved. // // This file is part of Ringtoets. // // Ringtoets is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // All names, logos, and references to "Deltares" are registered trademarks of // Stichting Deltares and remain full property of Stichting Deltares at all times. // All rights reserved. using System; using Ringtoets.AssemblyTool.Data; namespace Ringtoets.Integration.Data.Assembly { /// /// Assembly result for the combined failure mechanism section. /// public class CombinedFailureMechanismSectionAssemblyResult { /// /// Creates a new instance of . /// /// The start of the section from the beginning of the reference line /// in meters. /// The end of the section from the beginning of the reference line /// in meters. /// The total result of the section. /// The container of the properties for the /// . /// Thrown when /// is null. public CombinedFailureMechanismSectionAssemblyResult(double sectionStart, double sectionEnd, FailureMechanismSectionAssemblyCategoryGroup totalResult, ConstructionProperties properties) { if (properties == null) { throw new ArgumentNullException(nameof(properties)); } SectionStart = sectionStart; SectionEnd = sectionEnd; TotalResult = totalResult; Piping = properties.Piping; GrassCoverErosionInwards = properties.GrassCoverErosionInwards; MacroStabilityInwards = properties.MacroStabilityInwards; MacroStabilityOutwards = properties.MacroStabilityOutwards; Microstability = properties.Microstability; StabilityStoneCover = properties.StabilityStoneCover; WaveImpactAsphaltCover = properties.WaveImpactAsphaltCover; WaterPressureAsphaltCover = properties.WaterPressureAsphaltCover; GrassCoverErosionOutwards = properties.GrassCoverErosionOutwards; GrassCoverSlipOffOutwards = properties.GrassCoverSlipOffOutwards; GrassCoverSlipOffInwards = properties.GrassCoverSlipOffInwards; HeightStructures = properties.HeightStructures; ClosingStructures = properties.ClosingStructures; PipingStructure = properties.PipingStructure; StabilityPointStructures = properties.StabilityPointStructures; StrengthStabilityLengthwiseConstruction = properties.StrengthStabilityLengthwiseConstruction; DuneErosion = properties.DuneErosion; TechnicalInnovation = properties.TechnicalInnovation; } /// /// Gets the start of the section from the beginning of the reference line. /// [m] /// public double SectionStart { get; } /// /// Gets the end of the section from the beginning of the reference line. /// [m] /// public double SectionEnd { get; } /// /// Gets the total assembly result. /// public FailureMechanismSectionAssemblyCategoryGroup TotalResult { get; } /// /// Gets the assembly result for piping. /// public FailureMechanismSectionAssemblyCategoryGroup Piping { get; } /// /// Gets the assembly result for grass cover erosion inwards. /// public FailureMechanismSectionAssemblyCategoryGroup GrassCoverErosionInwards { get; } /// /// Gets the assembly result for macro stability inwards. /// public FailureMechanismSectionAssemblyCategoryGroup MacroStabilityInwards { get; } /// /// Gets the assembly result for macro stability outwards. /// public FailureMechanismSectionAssemblyCategoryGroup MacroStabilityOutwards { get; } /// /// Gets the assembly result for microstability. /// public FailureMechanismSectionAssemblyCategoryGroup Microstability { get; } /// /// Gets the assembly result for stability stone cover. /// public FailureMechanismSectionAssemblyCategoryGroup StabilityStoneCover { get; } /// /// Gets the assembly result for wave impact asphalt cover. /// public FailureMechanismSectionAssemblyCategoryGroup WaveImpactAsphaltCover { get; } /// /// Gets the assembly result for water pressure asphalt cover. /// public FailureMechanismSectionAssemblyCategoryGroup WaterPressureAsphaltCover { get; } /// /// Gets the assembly result for grass cover erosion outwards. /// public FailureMechanismSectionAssemblyCategoryGroup GrassCoverErosionOutwards { get; } /// /// Gets the assembly result for grass cover slip off outwards. /// public FailureMechanismSectionAssemblyCategoryGroup GrassCoverSlipOffOutwards { get; } /// /// Gets the assembly result for grass cover slip off inwards. /// public FailureMechanismSectionAssemblyCategoryGroup GrassCoverSlipOffInwards { get; } /// /// Gets the assembly result for height structures. /// public FailureMechanismSectionAssemblyCategoryGroup HeightStructures { get; } /// /// Gets the assembly result for closing structures. /// public FailureMechanismSectionAssemblyCategoryGroup ClosingStructures { get; } /// /// Gets the assembly result for piping structure. /// public FailureMechanismSectionAssemblyCategoryGroup PipingStructure { get; } /// /// Gets the assembly result for stability point structures. /// public FailureMechanismSectionAssemblyCategoryGroup StabilityPointStructures { get; } /// /// Gets the assembly result for strength stability lengthwise construction. /// public FailureMechanismSectionAssemblyCategoryGroup StrengthStabilityLengthwiseConstruction { get; } /// /// Gets the assembly result for dune erosion. /// public FailureMechanismSectionAssemblyCategoryGroup DuneErosion { get; } /// /// Gets the assembly result for technical innovation. /// public FailureMechanismSectionAssemblyCategoryGroup TechnicalInnovation { get; } /// /// Container for properties for constructing a . /// s public class ConstructionProperties { /// /// Creates a new instance of . /// public ConstructionProperties() { Piping = FailureMechanismSectionAssemblyCategoryGroup.None; GrassCoverErosionInwards = FailureMechanismSectionAssemblyCategoryGroup.None; MacroStabilityInwards = FailureMechanismSectionAssemblyCategoryGroup.None; MacroStabilityOutwards = FailureMechanismSectionAssemblyCategoryGroup.None; Microstability = FailureMechanismSectionAssemblyCategoryGroup.None; StabilityStoneCover = FailureMechanismSectionAssemblyCategoryGroup.None; WaveImpactAsphaltCover = FailureMechanismSectionAssemblyCategoryGroup.None; WaterPressureAsphaltCover = FailureMechanismSectionAssemblyCategoryGroup.None; GrassCoverErosionOutwards = FailureMechanismSectionAssemblyCategoryGroup.None; GrassCoverSlipOffOutwards = FailureMechanismSectionAssemblyCategoryGroup.None; GrassCoverSlipOffInwards = FailureMechanismSectionAssemblyCategoryGroup.None; HeightStructures = FailureMechanismSectionAssemblyCategoryGroup.None; ClosingStructures = FailureMechanismSectionAssemblyCategoryGroup.None; PipingStructure = FailureMechanismSectionAssemblyCategoryGroup.None; StabilityPointStructures = FailureMechanismSectionAssemblyCategoryGroup.None; StrengthStabilityLengthwiseConstruction = FailureMechanismSectionAssemblyCategoryGroup.None; DuneErosion = FailureMechanismSectionAssemblyCategoryGroup.None; TechnicalInnovation = FailureMechanismSectionAssemblyCategoryGroup.None; } /// /// Gets or sets the assembly result for piping. /// public FailureMechanismSectionAssemblyCategoryGroup Piping { internal get; set; } /// /// Gets or sets the assembly result for grass cover erosion inwards. /// public FailureMechanismSectionAssemblyCategoryGroup GrassCoverErosionInwards { internal get; set; } /// /// Gets or sets the assembly result for macro stability inwards. /// public FailureMechanismSectionAssemblyCategoryGroup MacroStabilityInwards { internal get; set; } /// /// Gets or sets the assembly result for macro stability outwards. /// public FailureMechanismSectionAssemblyCategoryGroup MacroStabilityOutwards { internal get; set; } /// /// Gets or sets the assembly result for microstability. /// public FailureMechanismSectionAssemblyCategoryGroup Microstability { internal get; set; } /// /// Gets or sets the assembly result for stability stone cover. /// public FailureMechanismSectionAssemblyCategoryGroup StabilityStoneCover { internal get; set; } /// /// Gets or sets the assembly result for wave impact asphalt cover. /// public FailureMechanismSectionAssemblyCategoryGroup WaveImpactAsphaltCover { internal get; set; } /// /// Gets or sets the assembly result for water pressure asphalt cover. /// public FailureMechanismSectionAssemblyCategoryGroup WaterPressureAsphaltCover { internal get; set; } /// /// Gets or sets the assembly result for grass cover erosion outwards. /// public FailureMechanismSectionAssemblyCategoryGroup GrassCoverErosionOutwards { internal get; set; } /// /// Gets or sets the assembly result for grass cover slip off outwards. /// public FailureMechanismSectionAssemblyCategoryGroup GrassCoverSlipOffOutwards { internal get; set; } /// /// Gets or sets the assembly result for grass cover slip off inwards. /// public FailureMechanismSectionAssemblyCategoryGroup GrassCoverSlipOffInwards { internal get; set; } /// /// Gets or sets the assembly result for height structures. /// public FailureMechanismSectionAssemblyCategoryGroup HeightStructures { internal get; set; } /// /// Gets or sets the assembly result for closing structures. /// public FailureMechanismSectionAssemblyCategoryGroup ClosingStructures { internal get; set; } /// /// Gets or sets the assembly result for piping structure. /// public FailureMechanismSectionAssemblyCategoryGroup PipingStructure { internal get; set; } /// /// Gets or sets the assembly result for stability point structures. /// public FailureMechanismSectionAssemblyCategoryGroup StabilityPointStructures { internal get; set; } /// /// Gets or sets the assembly result for strength stability lengthwise construction. /// public FailureMechanismSectionAssemblyCategoryGroup StrengthStabilityLengthwiseConstruction { internal get; set; } /// /// Gets or sets the assembly result for dune erosion. /// public FailureMechanismSectionAssemblyCategoryGroup DuneErosion { internal get; set; } /// /// Gets or sets the assembly result for technical innovation. /// public FailureMechanismSectionAssemblyCategoryGroup TechnicalInnovation { internal get; set; } } } }