Index: DeltaShell.sln =================================================================== diff -u -r2423a70958e7fecfc92afa462c34194cc695a81e -rfaf875db79b0ba95a39e599bbd3e18e8b4b55451 --- DeltaShell.sln (.../DeltaShell.sln) (revision 2423a70958e7fecfc92afa462c34194cc695a81e) +++ DeltaShell.sln (.../DeltaShell.sln) (revision faf875db79b0ba95a39e599bbd3e18e8b4b55451) @@ -150,7 +150,7 @@ EndProject Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "WtiSetup", "setup\Plugins\WtiSetup\WtiSetup.wixproj", "{3CCB05DB-C7B3-4EF7-B41D-22B6D2A3774E}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Wti.Service", "src\Plugins\Wti\Wti.Service\Wti.Service.csproj", "{10B8D63D-87E8-46DF-ACA9-A8CF22EE8FB5}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Wti.Service", "src\Plugins\Ringtoets\Piping\Wti.Service\Wti.Service.csproj", "{10B8D63D-87E8-46DF-ACA9-A8CF22EE8FB5}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Wti.Service.Test", "test\Plugins\Wti\Wti.Service.Test\Wti.Service.Test.csproj", "{D783543B-46A1-4848-A812-AF5A5259ED7E}" EndProject Index: src/DeltaShell/DeltaShell.Gui/DeltaShell.Gui.csproj =================================================================== diff -u -r1d6beb90006c5c2d9f833f5d13ae522df9f65973 -rfaf875db79b0ba95a39e599bbd3e18e8b4b55451 --- src/DeltaShell/DeltaShell.Gui/DeltaShell.Gui.csproj (.../DeltaShell.Gui.csproj) (revision 1d6beb90006c5c2d9f833f5d13ae522df9f65973) +++ src/DeltaShell/DeltaShell.Gui/DeltaShell.Gui.csproj (.../DeltaShell.Gui.csproj) (revision faf875db79b0ba95a39e599bbd3e18e8b4b55451) @@ -296,7 +296,7 @@ {d64e4f0e-e341-496f-82b2-941ad202b4e3} Wti.Calculation - + {10b8d63d-87e8-46df-aca9-a8cf22ee8fb5} Wti.Service Index: src/Plugins/Ringtoets/Piping/Wti.Service/DateTimeService.cs =================================================================== diff -u --- src/Plugins/Ringtoets/Piping/Wti.Service/DateTimeService.cs (revision 0) +++ src/Plugins/Ringtoets/Piping/Wti.Service/DateTimeService.cs (revision faf875db79b0ba95a39e599bbd3e18e8b4b55451) @@ -0,0 +1,21 @@ +using System; + +namespace Wti.Service +{ + /// + /// The class is responsible for providing general operations. + /// + public static class DateTimeService + { + /// + /// Gets the current time in HH:mm:ss format. + /// + public static String CurrentTimeAsString + { + get + { + return DateTime.Now.ToString("HH:mm:ss"); + } + } + } +} \ No newline at end of file Index: src/Plugins/Ringtoets/Piping/Wti.Service/PipingCalculationResult.cs =================================================================== diff -u --- src/Plugins/Ringtoets/Piping/Wti.Service/PipingCalculationResult.cs (revision 0) +++ src/Plugins/Ringtoets/Piping/Wti.Service/PipingCalculationResult.cs (revision faf875db79b0ba95a39e599bbd3e18e8b4b55451) @@ -0,0 +1,23 @@ +namespace Wti.Service +{ + /// + /// Status result from a calculation or validation performed by the . + /// + public enum PipingCalculationResult + { + /// + /// Value which is returned when no calculation or validation errors occurred. + /// + Successful, + + /// + /// Value which is returned when the validation routine resulted in validation errors. + /// + ValidationErrors, + + /// + /// Value which is returned when the calculation routine encountered problems. + /// + CalculationErrors + } +} \ No newline at end of file Index: src/Plugins/Ringtoets/Piping/Wti.Service/PipingCalculationService.cs =================================================================== diff -u --- src/Plugins/Ringtoets/Piping/Wti.Service/PipingCalculationService.cs (revision 0) +++ src/Plugins/Ringtoets/Piping/Wti.Service/PipingCalculationService.cs (revision faf875db79b0ba95a39e599bbd3e18e8b4b55451) @@ -0,0 +1,128 @@ +using System; +using log4net; +using Wti.Calculation.Piping; +using Wti.Data; +using Wti.Service.Properties; + +namespace Wti.Service +{ + /// + /// This class is responsible for invoking operations on the . Error and status information is + /// logged during the execution of the operation. At the end of an operation, a is returned, + /// representing the result of the operation. + /// + public static class PipingCalculationService + { + private static readonly ILog PipingDataLogger = LogManager.GetLogger(typeof(PipingData)); + + /// + /// Performs a piping calculation based on the supplied and sets + /// to the if the calculation was successful. Error and status information is logged during + /// the execution of the operation. + /// + /// The to base the input for the calculation upon. + /// If contains validation errors, then is returned. + /// If problems were encountered during the calculation, is returned. + /// Otherwise, is returned. + public static PipingCalculationResult PerfromValidatedCalculation(PipingData pipingData) + { + PipingCalculationResult validationResult = Validate(pipingData); + + if (validationResult == PipingCalculationResult.Successful) + { + ClearOutput(pipingData); + return Calculate(pipingData); + } + + return validationResult; + } + + /// + /// Performs validation over the values on the given . Error and status information is logged during + /// the execution of the operation. + /// + /// The for which to validate the values. + /// If contains validation errors, then is returned. + /// Otherwise, is returned. + public static PipingCalculationResult Validate(PipingData pipingData) + { + PipingDataLogger.Info(String.Format(Resources.ValidationStarted_0, DateTimeService.CurrentTimeAsString)); + + var validationResults = new PipingCalculation(CreateInputFromData(pipingData)).Validate(); + LogMessagesAsError(Resources.ErrorInPipingValidation_0, validationResults.ToArray()); + + PipingDataLogger.Info(String.Format(Resources.ValidationEnded_0, DateTimeService.CurrentTimeAsString)); + + return validationResults.Count > 0 ? PipingCalculationResult.ValidationErrors : PipingCalculationResult.Successful; + } + + private static void LogMessagesAsError(string format, params string[] errorMessages) + { + foreach (var errorMessage in errorMessages) + { + PipingDataLogger.Error(string.Format(format, errorMessage)); + } + } + + private static void ClearOutput(PipingData pipingData) + { + pipingData.Output = null; + } + + private static PipingCalculationResult Calculate(PipingData pipingData) + { + PipingDataLogger.Info(String.Format(Resources.CalculationStarted_0, DateTimeService.CurrentTimeAsString)); + + try + { + var pipingResult = new PipingCalculation(CreateInputFromData(pipingData)).Calculate(); + + pipingData.Output = new PipingOutput(pipingResult.UpliftZValue, + pipingResult.UpliftFactorOfSafety, + pipingResult.HeaveZValue, + pipingResult.HeaveFactorOfSafety, + pipingResult.SellmeijerZValue, + pipingResult.SellmeijerFactorOfSafety); + } + catch (PipingCalculationException e) + { + LogMessagesAsError(Resources.ErrorInPipingCalculation_0, e.Message); + return PipingCalculationResult.CalculationErrors; + } + finally + { + PipingDataLogger.Info(String.Format(Resources.CalculationEnded_0, DateTimeService.CurrentTimeAsString)); + } + return PipingCalculationResult.Successful; + } + + private static PipingCalculationInput CreateInputFromData(PipingData pipingData) + { + return new PipingCalculationInput( + pipingData.WaterVolumetricWeight, + pipingData.UpliftModelFactor, + pipingData.AssessmentLevel, + pipingData.PiezometricHeadExit, + pipingData.DampingFactorExit, + pipingData.PhreaticLevelExit, + pipingData.PiezometricHeadPolder, + pipingData.CriticalHeaveGradient, + pipingData.ThicknessCoverageLayer, + pipingData.SellmeijerModelFactor, + pipingData.SellmeijerReductionFactor, + pipingData.SeepageLength, + pipingData.SandParticlesVolumicWeight, + pipingData.WhitesDragCoefficient, + pipingData.Diameter70, + pipingData.DarcyPermeability, + pipingData.WaterKinematicViscosity, + pipingData.Gravity, + pipingData.ThicknessAquiferLayer, + pipingData.MeanDiameter70, + pipingData.BeddingAngle, + pipingData.ExitPointXCoordinate, + pipingData.SurfaceLine + ); + } + } +} \ No newline at end of file Index: src/Plugins/Ringtoets/Piping/Wti.Service/Properties/AssemblyInfo.cs =================================================================== diff -u --- src/Plugins/Ringtoets/Piping/Wti.Service/Properties/AssemblyInfo.cs (revision 0) +++ src/Plugins/Ringtoets/Piping/Wti.Service/Properties/AssemblyInfo.cs (revision faf875db79b0ba95a39e599bbd3e18e8b4b55451) @@ -0,0 +1,6 @@ +using System.Reflection; +using System.Runtime.InteropServices; + +[assembly: AssemblyTitle("Wti.Service")] +[assembly: AssemblyProduct("Wti.Service")] +[assembly: Guid("3ad44406-356a-4ad1-b911-510da20d5430")] \ No newline at end of file Index: src/Plugins/Ringtoets/Piping/Wti.Service/Properties/Resources.Designer.cs =================================================================== diff -u --- src/Plugins/Ringtoets/Piping/Wti.Service/Properties/Resources.Designer.cs (revision 0) +++ src/Plugins/Ringtoets/Piping/Wti.Service/Properties/Resources.Designer.cs (revision faf875db79b0ba95a39e599bbd3e18e8b4b55451) @@ -0,0 +1,117 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.34209 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Wti.Service.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Wti.Service.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized string similar to Berekening beëindigd om: {0}. + /// + internal static string CalculationEnded_0 { + get { + return ResourceManager.GetString("CalculationEnded_0", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Berekening gestart om: {0}. + /// + internal static string CalculationStarted_0 { + get { + return ResourceManager.GetString("CalculationStarted_0", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Piping berekening niet gelukt: {0}. + /// + internal static string ErrorInPipingCalculation_0 { + get { + return ResourceManager.GetString("ErrorInPipingCalculation_0", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Validatie mislukt: {0}. + /// + internal static string ErrorInPipingValidation_0 { + get { + return ResourceManager.GetString("ErrorInPipingValidation_0", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Validatie beëindigd om: {0}. + /// + internal static string ValidationEnded_0 { + get { + return ResourceManager.GetString("ValidationEnded_0", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Validatie gestart om: {0}. + /// + internal static string ValidationStarted_0 { + get { + return ResourceManager.GetString("ValidationStarted_0", resourceCulture); + } + } + } +} Index: src/Plugins/Ringtoets/Piping/Wti.Service/Properties/Resources.resx =================================================================== diff -u --- src/Plugins/Ringtoets/Piping/Wti.Service/Properties/Resources.resx (revision 0) +++ src/Plugins/Ringtoets/Piping/Wti.Service/Properties/Resources.resx (revision faf875db79b0ba95a39e599bbd3e18e8b4b55451) @@ -0,0 +1,138 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Berekening beëindigd om: {0} + + + Berekening gestart om: {0} + + + Piping berekening niet gelukt: {0} + + + Validatie mislukt: {0} + + + Validatie beëindigd om: {0} + + + Validatie gestart om: {0} + + \ No newline at end of file Index: src/Plugins/Ringtoets/Piping/Wti.Service/Wti.Service.csproj =================================================================== diff -u --- src/Plugins/Ringtoets/Piping/Wti.Service/Wti.Service.csproj (revision 0) +++ src/Plugins/Ringtoets/Piping/Wti.Service/Wti.Service.csproj (revision faf875db79b0ba95a39e599bbd3e18e8b4b55451) @@ -0,0 +1,112 @@ + + + + + Debug + AnyCPU + {10B8D63D-87E8-46DF-ACA9-A8CF22EE8FB5} + Library + Properties + Wti.Service + Wti.Service + v4.0 + 512 + + + true + bin\Debug\ + 4 + DEBUG;TRACE + full + x86 + false + prompt + MinimumRecommendedRules.ruleset + bin\Debug\Wti.Service.XML + + + bin\Release\ + 4 + TRACE + true + pdbonly + x86 + prompt + MinimumRecommendedRules.ruleset + false + bin\Release\Wti.Service.XML + + + + ..\..\..\..\..\lib\log4net.dll + + + + + + + + + + + + + + Properties\GlobalAssembly.cs + + + + + + + True + True + Resources.resx + + + + + {3DBD23CE-5C4A-4A49-B51C-B268CB2B510E} + DelftTools.Controls.Swf + + + {9A2D67E6-26AC-4D17-B11A-2B4372F2F572} + DelftTools.Controls + + + {82b61d20-fd4b-49be-9252-5bf6e3ee4666} + DelftTools.Shell.Core + + + {c90b77da-e421-43cc-b82e-529651bc21ac} + Wti.Base + False + + + {D64E4F0E-E341-496F-82B2-941AD202B4E3} + Wti.Calculation + + + {CE994CC9-6F6A-48AC-B4BE-02C30A21F4DB} + Wti.Data + + + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + + + + + + \ No newline at end of file Index: src/Plugins/Wti/Wti.Forms/Wti.Forms.csproj =================================================================== diff -u -r9cd3db94455d7ac8ec96d2504f46ca66a203a724 -rfaf875db79b0ba95a39e599bbd3e18e8b4b55451 --- src/Plugins/Wti/Wti.Forms/Wti.Forms.csproj (.../Wti.Forms.csproj) (revision 9cd3db94455d7ac8ec96d2504f46ca66a203a724) +++ src/Plugins/Wti/Wti.Forms/Wti.Forms.csproj (.../Wti.Forms.csproj) (revision faf875db79b0ba95a39e599bbd3e18e8b4b55451) @@ -106,7 +106,7 @@ {D64E4F0E-E341-496F-82B2-941AD202B4E3} Wti.Calculation - + {10B8D63D-87E8-46DF-ACA9-A8CF22EE8FB5} Wti.Service Index: src/Plugins/Wti/Wti.Plugin/Wti.Plugin.csproj =================================================================== diff -u -rcc2b9aecfd7eb25353fbf015f23c9f0f69178f3f -rfaf875db79b0ba95a39e599bbd3e18e8b4b55451 --- src/Plugins/Wti/Wti.Plugin/Wti.Plugin.csproj (.../Wti.Plugin.csproj) (revision cc2b9aecfd7eb25353fbf015f23c9f0f69178f3f) +++ src/Plugins/Wti/Wti.Plugin/Wti.Plugin.csproj (.../Wti.Plugin.csproj) (revision faf875db79b0ba95a39e599bbd3e18e8b4b55451) @@ -109,7 +109,7 @@ {d64e4f0e-e341-496f-82b2-941ad202b4e3} Wti.Calculation - + {10B8D63D-87E8-46DF-ACA9-A8CF22EE8FB5} Wti.Service Fisheye: Tag faf875db79b0ba95a39e599bbd3e18e8b4b55451 refers to a dead (removed) revision in file `src/Plugins/Wti/Wti.Service/DateTimeService.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag faf875db79b0ba95a39e599bbd3e18e8b4b55451 refers to a dead (removed) revision in file `src/Plugins/Wti/Wti.Service/PipingCalculationResult.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag faf875db79b0ba95a39e599bbd3e18e8b4b55451 refers to a dead (removed) revision in file `src/Plugins/Wti/Wti.Service/PipingCalculationService.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag faf875db79b0ba95a39e599bbd3e18e8b4b55451 refers to a dead (removed) revision in file `src/Plugins/Wti/Wti.Service/Properties/AssemblyInfo.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag faf875db79b0ba95a39e599bbd3e18e8b4b55451 refers to a dead (removed) revision in file `src/Plugins/Wti/Wti.Service/Properties/Resources.Designer.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag faf875db79b0ba95a39e599bbd3e18e8b4b55451 refers to a dead (removed) revision in file `src/Plugins/Wti/Wti.Service/Properties/Resources.resx'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag faf875db79b0ba95a39e599bbd3e18e8b4b55451 refers to a dead (removed) revision in file `src/Plugins/Wti/Wti.Service/Wti.Service.csproj'. Fisheye: No comparison available. Pass `N' to diff? Index: src/documentation/UML/UML.csproj =================================================================== diff -u -r2ff69dfc67c77d80c1ed2f4f1f9bc0172e28e518 -rfaf875db79b0ba95a39e599bbd3e18e8b4b55451 --- src/documentation/UML/UML.csproj (.../UML.csproj) (revision 2ff69dfc67c77d80c1ed2f4f1f9bc0172e28e518) +++ src/documentation/UML/UML.csproj (.../UML.csproj) (revision faf875db79b0ba95a39e599bbd3e18e8b4b55451) @@ -15,7 +15,7 @@ true bin\Debug\ - 4 + 4 DEBUG;TRACE full x86 @@ -25,7 +25,7 @@ bin\Release\ - 4 + 4 TRACE true pdbonly @@ -62,7 +62,7 @@ {d64e4f0e-e341-496f-82b2-941ad202b4e3} Wti.Calculation - + {10b8d63d-87e8-46df-aca9-a8cf22ee8fb5} Wti.Service Index: test/Plugins/Wti/Wti.Service.Test/Wti.Service.Test.csproj =================================================================== diff -u -r2ff69dfc67c77d80c1ed2f4f1f9bc0172e28e518 -rfaf875db79b0ba95a39e599bbd3e18e8b4b55451 --- test/Plugins/Wti/Wti.Service.Test/Wti.Service.Test.csproj (.../Wti.Service.Test.csproj) (revision 2ff69dfc67c77d80c1ed2f4f1f9bc0172e28e518) +++ test/Plugins/Wti/Wti.Service.Test/Wti.Service.Test.csproj (.../Wti.Service.Test.csproj) (revision faf875db79b0ba95a39e599bbd3e18e8b4b55451) @@ -15,7 +15,7 @@ true bin\Debug\ - 4 + 4 DEBUG;TRACE full x86 @@ -24,7 +24,7 @@ bin\Release\ - 4 + 4 TRACE true pdbonly @@ -69,7 +69,7 @@ {D64E4F0E-E341-496F-82B2-941AD202B4E3} Wti.Calculation - + {10B8D63D-87E8-46DF-ACA9-A8CF22EE8FB5} Wti.Service