Index: DamEngine/branches/nwo_18.1/src/Deltares.DamEngine.Calculators/KernelWrappers/DamMacroStabilityOutwards/DamMacroStabilityOutwardsKernelWrapper.cs =================================================================== diff -u -r1848 -r1979 --- DamEngine/branches/nwo_18.1/src/Deltares.DamEngine.Calculators/KernelWrappers/DamMacroStabilityOutwards/DamMacroStabilityOutwardsKernelWrapper.cs (.../DamMacroStabilityOutwardsKernelWrapper.cs) (revision 1848) +++ DamEngine/branches/nwo_18.1/src/Deltares.DamEngine.Calculators/KernelWrappers/DamMacroStabilityOutwards/DamMacroStabilityOutwardsKernelWrapper.cs (.../DamMacroStabilityOutwardsKernelWrapper.cs) (revision 1979) @@ -36,6 +36,10 @@ using Deltares.DamEngine.Calculators.DikesDesign; using Deltares.DamEngine.Data.Design; using Deltares.DamEngine.Data.Geometry; +using Deltares.DamEngine.Data.Geotechnics; +using System.Diagnostics; +using System.Linq; +using Deltares.DamEngine.Calculators.KernelWrappers.DamMacroStabilityCommon.Assemblers; namespace Deltares.DamEngine.Calculators.KernelWrappers.DamMacroStabilityOutwards { @@ -116,7 +120,7 @@ XDocument xmlDocument = CreateMstabDamXmlDocument(damKernelInput, damMacroStabilityInput); // Use xml file to create sti file - CreateStiFile(xmlDocument); + CreateStiFile(xmlDocument, damKernelInput); return PrepareResult.Successful; } @@ -214,12 +218,34 @@ return mstabXml; } - internal void CreateStiFile(XDocument xmlDocument) + internal void CreateStiFile(XDocument xmlDocument, DamKernelInput damKernelInput) { DGSMStabDAMInterface mstabDamDll = new DGSMStabDAMInterface(); var result = mstabDamDll.CreateProjectFile(xmlDocument.ToString()); - if (result > 0) + + + if (xmlDocument.Root != null) { + XElement inputElement = (from element in xmlDocument.Root.Descendants() + where element.Name.LocalName == DamMStabAssembler.XmlElementNameInput + select element).Single(); + XAttribute mstabFileName = inputElement.Attribute(DamMStabAssembler.XmlAttributeMStabFileName); + if (mstabFileName != null) + { + string stiFileName = mstabFileName.Value; + if (damKernelInput != null) + { + PythonInterface pythonInterface = new PythonInterface(); + pythonInterface.PerformPythonActions(damKernelInput, stiFileName); + } + } + + + } + + + if (result > 0) + { string errorMessage = mstabDamDll.ErrorMessage(); throw new MacroStabilityException(errorMessage); } Index: DamEngine/branches/nwo_18.1/src/Deltares.DamEngine.Calculators/Deltares.DamEngine.Calculators.csproj =================================================================== diff -u -r1848 -r1979 --- DamEngine/branches/nwo_18.1/src/Deltares.DamEngine.Calculators/Deltares.DamEngine.Calculators.csproj (.../Deltares.DamEngine.Calculators.csproj) (revision 1848) +++ DamEngine/branches/nwo_18.1/src/Deltares.DamEngine.Calculators/Deltares.DamEngine.Calculators.csproj (.../Deltares.DamEngine.Calculators.csproj) (revision 1979) @@ -72,6 +72,7 @@ + Index: DamEngine/branches/nwo_18.1/src/Deltares.DamEngine.Interface.Tests/EngineInterfaceTests.cs =================================================================== diff -u -r1848 -r1979 --- DamEngine/branches/nwo_18.1/src/Deltares.DamEngine.Interface.Tests/EngineInterfaceTests.cs (.../EngineInterfaceTests.cs) (revision 1848) +++ DamEngine/branches/nwo_18.1/src/Deltares.DamEngine.Interface.Tests/EngineInterfaceTests.cs (.../EngineInterfaceTests.cs) (revision 1979) @@ -74,5 +74,14 @@ Assert.IsNotNull(engineInterface.DamProjectData); } + //[Test] + //public void testTest() + //{ + // const string fileName = "D:/noordam/Documents/DAMNWO/calculations/test3/input/InputFile.xml"; // This file is created by test CanWriteAndReadDamProjectDataToXml() + // string xmlString = File.ReadAllText(fileName); + // EngineInterface engineInterface = new EngineInterface(xmlString); + // Assert.IsNotNull(engineInterface.DamProjectData); + //} + } } Index: DamEngine/branches/nwo_18.1/src/Deltares.DamEngine.Interface/EngineInterface.cs =================================================================== diff -u -r1848 -r1979 --- DamEngine/branches/nwo_18.1/src/Deltares.DamEngine.Interface/EngineInterface.cs (.../EngineInterface.cs) (revision 1848) +++ DamEngine/branches/nwo_18.1/src/Deltares.DamEngine.Interface/EngineInterface.cs (.../EngineInterface.cs) (revision 1979) @@ -24,6 +24,7 @@ using Deltares.DamEngine.Calculators.DikesAssessmentRegional; using Deltares.DamEngine.Calculators.DikesDesign; using Deltares.DamEngine.Calculators.DikesOperational; +using Deltares.DamEngine.Calculators.KernelWrappers.Interfaces; using Deltares.DamEngine.Data.General; using Deltares.DamEngine.Data.Standard.Calculation; using Deltares.DamEngine.Data.Standard.Logging; @@ -32,6 +33,7 @@ using Deltares.DamEngine.Io.XmlInput; using Deltares.DamEngine.Io.XmlOutput; + namespace Deltares.DamEngine.Interface { /// @@ -204,6 +206,10 @@ Output output = FillXmlOutputFromDam.CreateOutput(DamProjectData); outputXml = DamXmlSerialization.SaveOutputAsXmlString(output); SendMessage(new LogMessage() { MessageType = LogMessageType.Info, Message = Resources.EndCalculation }); + + PythonInterface pythonInterface = new PythonInterface(); + pythonInterface.ClearPythonActions(); + return outputXml; } } Index: DamEngine/branches/nwo_18.1/src/Deltares.DamEngine.Calculators/KernelWrappers/DamMacroStabilityInwards/DamMacroStabilityInwardsKernelWrapper.cs =================================================================== diff -u -r1848 -r1979 --- DamEngine/branches/nwo_18.1/src/Deltares.DamEngine.Calculators/KernelWrappers/DamMacroStabilityInwards/DamMacroStabilityInwardsKernelWrapper.cs (.../DamMacroStabilityInwardsKernelWrapper.cs) (revision 1848) +++ DamEngine/branches/nwo_18.1/src/Deltares.DamEngine.Calculators/KernelWrappers/DamMacroStabilityInwards/DamMacroStabilityInwardsKernelWrapper.cs (.../DamMacroStabilityInwardsKernelWrapper.cs) (revision 1979) @@ -22,11 +22,14 @@ using System; using System.Collections.Generic; using System.Data; +using System.Diagnostics; using System.IO; +using System.Linq; using System.Xml.Linq; using Deltares.DamEngine.Calculators.DikesDesign; using Deltares.DamEngine.Calculators.KernelWrappers.Common; using Deltares.DamEngine.Calculators.KernelWrappers.DamMacroStabilityCommon; +using Deltares.DamEngine.Calculators.KernelWrappers.DamMacroStabilityCommon.Assemblers; using Deltares.DamEngine.Calculators.KernelWrappers.Interfaces; using Deltares.DamEngine.Calculators.Properties; using Deltares.DamEngine.Data.Design; @@ -136,7 +139,7 @@ // Write xml file XDocument xmlDocument = CreateMstabDamXmlDocument(damKernelInput, damMacroStabilityInput); // Use xml file to create sti file - CreateStiFile(xmlDocument); + CreateStiFile(xmlDocument, damKernelInput); // now check if second calculation for BishopUpliftVan is needed, if so perform prepare. if (bishopUpliftVan) @@ -154,7 +157,7 @@ // Write xml file xmlDocument = CreateMstabDamXmlDocument(damKernelInput, damMacroStabilityInput); // Use xml file to create sti file - CreateStiFile(xmlDocument); + CreateStiFile(xmlDocument, damKernelInput);//// } finally { @@ -342,10 +345,30 @@ return mstabXml; } - internal void CreateStiFile(XDocument xmlDocument) + internal void CreateStiFile(XDocument xmlDocument, DamKernelInput damKernelInput) { DGSMStabDAMInterface mstabDamDll = new DGSMStabDAMInterface(); var result = mstabDamDll.CreateProjectFile(xmlDocument.ToString()); + + + if (xmlDocument.Root != null) + { + XElement inputElement = (from element in xmlDocument.Root.Descendants() + where element.Name.LocalName == DamMStabAssembler.XmlElementNameInput + select element).Single(); + XAttribute mstabFileName = inputElement.Attribute(DamMStabAssembler.XmlAttributeMStabFileName); + if (mstabFileName!= null) + { + string stiFileName = mstabFileName.Value; + + if (damKernelInput != null) + { + PythonInterface pythonInterface = new PythonInterface(); + pythonInterface.PerformPythonActions(damKernelInput, stiFileName); + } + } + } + if (result > 0) { string errorMessage = mstabDamDll.ErrorMessage(); @@ -612,7 +635,7 @@ mstabXML.Save(mstabProjectFilename + ".xml"); damMacroStabilityInput.DGeoStabilityInputFileName = mstabProjectFilename; - CreateStiFile(mstabXML); + CreateStiFile(mstabXML, damKernelInput); if (!File.Exists(mstabProjectFilename)) Index: DamEngine/branches/nwo_18.1/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/DamMacroStabilityOutwards/DamMacroStabilityOutwardsKernelWrapperTests.cs =================================================================== diff -u -r1848 -r1979 --- DamEngine/branches/nwo_18.1/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/DamMacroStabilityOutwards/DamMacroStabilityOutwardsKernelWrapperTests.cs (.../DamMacroStabilityOutwardsKernelWrapperTests.cs) (revision 1848) +++ DamEngine/branches/nwo_18.1/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/DamMacroStabilityOutwards/DamMacroStabilityOutwardsKernelWrapperTests.cs (.../DamMacroStabilityOutwardsKernelWrapperTests.cs) (revision 1979) @@ -320,7 +320,7 @@ var xDocument = ModifiedXmlDocument(stiFileName); var kernelWrapper = new DamMacroStabilityOutwardsKernelWrapper(); - kernelWrapper.CreateStiFile(xDocument); + kernelWrapper.CreateStiFile(xDocument,null); Assert.IsTrue(File.Exists(stiFileName)); Assert.AreEqual(ContentOfStiFile(expectedStiFileName), ContentOfStiFile(stiFileName)); } @@ -331,7 +331,7 @@ { var kernelWrapper = new DamMacroStabilityOutwardsKernelWrapper(); XDocument xDocument = new XDocument(); - kernelWrapper.CreateStiFile(xDocument); + kernelWrapper.CreateStiFile(xDocument,null); } private string ContentOfStiFile(string stiFileName) Index: DamEngine/branches/nwo_18.1/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/DamMacroStabilityInwards/DamMacroStabilityInwardsKernelWrapperTests.cs =================================================================== diff -u -r1848 -r1979 --- DamEngine/branches/nwo_18.1/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/DamMacroStabilityInwards/DamMacroStabilityInwardsKernelWrapperTests.cs (.../DamMacroStabilityInwardsKernelWrapperTests.cs) (revision 1848) +++ DamEngine/branches/nwo_18.1/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/DamMacroStabilityInwards/DamMacroStabilityInwardsKernelWrapperTests.cs (.../DamMacroStabilityInwardsKernelWrapperTests.cs) (revision 1979) @@ -202,7 +202,7 @@ var xDocument = ModifiedXmlDocument(xmlFileName, stiFileName, soilDbName, geometryFileName); var kernelWrapper = new DamMacroStabilityInwardsKernelWrapper(); - kernelWrapper.CreateStiFile(xDocument); + kernelWrapper.CreateStiFile(xDocument,null); Assert.IsTrue(File.Exists(stiFileName)); Assert.AreEqual(ContentOfStiFile(expectedStiFileName), ContentOfStiFile(stiFileName)); } @@ -213,7 +213,7 @@ { var kernelWrapper = new DamMacroStabilityInwardsKernelWrapper(); XDocument xDocument = new XDocument(); - kernelWrapper.CreateStiFile(xDocument); + kernelWrapper.CreateStiFile(xDocument,null); } private string ContentOfStiFile(string stiFileName) Index: DamEngine/branches/nwo_18.1/src/Deltares.DamEngine.Calculators/DikesDesign/SurfaceLineHeightAdapter.cs =================================================================== diff -u -r1848 -r1979 --- DamEngine/branches/nwo_18.1/src/Deltares.DamEngine.Calculators/DikesDesign/SurfaceLineHeightAdapter.cs (.../SurfaceLineHeightAdapter.cs) (revision 1848) +++ DamEngine/branches/nwo_18.1/src/Deltares.DamEngine.Calculators/DikesDesign/SurfaceLineHeightAdapter.cs (.../SurfaceLineHeightAdapter.cs) (revision 1979) @@ -147,6 +147,9 @@ surfaceLine.EnsurePointOfType(newPointAtTopPolder.X, newPointAtTopPolder.Z, CharacteristicPointType.DikeTopAtPolder); // Restore Ditch (if any) RestoreDitch(ditchDefinition); + + // // Restore NWO (if any) + // RestoreNonWaterRetainingObject(ditchDefinition); // Restore traffic load RestoreTrafficLoad(); surfaceLine.SortPoints();