// Copyright (C) Stichting Deltares 2017. All rights reserved. // // This file is part of the Dam Engine. // // The Dam Engine is free software: you can redistribute it and/or modify // it under the terms of the GNU Affero 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 Affero General Public License for more details. // // You should have received a copy of the GNU Affero 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.Collections.Generic; using Deltares.DamEngine.Data.General; using Deltares.DamEngine.Io.XmlOutput; namespace Deltares.DamEngine.Interface { /// /// Class to fill the results in DamProjectData based on the output xml (for test purposes only) /// public class FillDamFromXmlOutput { /// /// Creates the dam project data. /// /// The output. /// public static DamProjectData CreateDamProjectData(Output output) { var damProjectData = new DamProjectData(); if (output != null && output.Results != null && output.Results.CalculationResults != null && output.Results.CalculationResults.DesignResults != null) { CreateDesignResultsOutput(output, damProjectData); } return damProjectData; } private static void CreateDesignResultsOutput(Output output, DamProjectData damProjectData) { // Design results damProjectData.DesignCalculations = new List(); for (int i = 0; i < output.Results.CalculationResults.DesignResults.Length; i++) { var designResult = output.Results.CalculationResults.DesignResults[i]; var desResult = new Data.General.Results.DesignResult(designResult.Id, designResult.Xrd, designResult.Yrd, designResult.LocationName, designResult.ScenarioName) { BaseFileName = designResult.BaseFileName, ProfileName = designResult.ProfileName }; if (designResult.SafetyFactorSpecified) desResult.SetSafetyFactor(designResult.SafetyFactor); if (designResult.FailureProbabilitySpecified) desResult.FailureProbability = designResult.FailureProbability; desResult.CalculationResult = ConversionHelper.ConvertToCalculationResult(designResult.CalculationResult); if (designResult.PipingDesignResults != null) { CreateDesignResultsPipingOutput(designResult, desResult); } damProjectData.DesignCalculations.Add(desResult); } } private static void CreateDesignResultsPipingOutput(DesignResult designResult, Data.General.Results.DesignResult desResult) { var model = PipingModelType.Bligh; if (designResult.PipingDesignResults.Sellmeijer4ForcesFactorSpecified) model = PipingModelType.Sellmeijer4Forces; if (designResult.PipingDesignResults.SellmeijerVnkFactorSpecified) model = PipingModelType.SellmeijerVnk; if (designResult.PipingDesignResults.Wti2017FactorSpecified) model = PipingModelType.Wti2017; desResult.PipingDesignResults = new Data.General.Results.PipingDesignResults(model) { ResultMessage = designResult.PipingDesignResults.ResultMessage, //RedesignedSurfaceLine2 = designResult.PipingDesignResults.RedesignedSurfaceLine }; if (designResult.PipingDesignResults.FailureProbabilitySpecified) desResult.PipingDesignResults.FailureProbability = designResult.PipingDesignResults.FailureProbability; if (designResult.PipingDesignResults.UpliftFactorSpecified) desResult.PipingDesignResults.UpliftFactor = designResult.PipingDesignResults.UpliftFactor; if (designResult.PipingDesignResults.HeaveFactorSpecified) desResult.PipingDesignResults.HeaveFactor = designResult.PipingDesignResults.HeaveFactor; if (designResult.PipingDesignResults.BlighFactorSpecified) desResult.PipingDesignResults.BlighFactor = designResult.PipingDesignResults.BlighFactor; if (designResult.PipingDesignResults.BlighHcriticalSpecified) desResult.PipingDesignResults.BlighHcritical = designResult.PipingDesignResults.BlighHcritical; if (designResult.PipingDesignResults.Sellmeijer4ForcesFactorSpecified) desResult.PipingDesignResults.Sellmeijer4ForcesFactor = designResult.PipingDesignResults.Sellmeijer4ForcesFactor; if (designResult.PipingDesignResults.Sellmeijer4ForcesHcriticalSpecified) desResult.PipingDesignResults.Sellmeijer4ForcesHcritical = designResult.PipingDesignResults.Sellmeijer4ForcesHcritical; if (designResult.PipingDesignResults.SellmeijerVnkFactorSpecified) desResult.PipingDesignResults.SellmeijerVnkFactor = designResult.PipingDesignResults.SellmeijerVnkFactor; if (designResult.PipingDesignResults.SellmeijerVnkHcriticalSpecified) desResult.PipingDesignResults.SellmeijerVnkHcritical = designResult.PipingDesignResults.SellmeijerVnkHcritical; if (designResult.PipingDesignResults.Wti2017FactorSpecified) desResult.PipingDesignResults.Wti2017Factor = designResult.PipingDesignResults.Wti2017Factor; if (designResult.PipingDesignResults.Wti2017HcriticalSpecified) desResult.PipingDesignResults.Wti2017Hcritical = designResult.PipingDesignResults.Wti2017Hcritical; if (designResult.PipingDesignResults.LocalExitPointXSpecified) desResult.PipingDesignResults.LocalExitPointX = designResult.PipingDesignResults.LocalExitPointX; if (designResult.PipingDesignResults.UpliftSituation != null) { var uplift = designResult.PipingDesignResults.UpliftSituation; var situation = new Data.Design.UpliftSituation(); situation.IsUplift = uplift.IsUplift; situation.Pl3MinUplift = uplift.Pl3MinUplift; situation.Pl3HeadAdjusted = uplift.Pl3HeadAdjusted; situation.Pl3LocationXMinUplift = uplift.Pl3LocalLocationXMinUplift; situation.Pl4MinUplift = uplift.Pl4MinUplift; situation.Pl4HeadAdjusted = uplift.Pl4HeadAdjusted; situation.Pl4LocationXMinUplift = uplift.Pl4LocalLocationXMinUplift; desResult.PipingDesignResults.UpliftSituation = situation; } } } }