Fisheye: Tag ba8f5d8f0bc75ecf1792534019c6b84a2378e395 refers to a dead (removed) revision in file `Application/Ringtoets/src/Application.Ringtoets/App.xaml'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag ba8f5d8f0bc75ecf1792534019c6b84a2378e395 refers to a dead (removed) revision in file `Application/Ringtoets/src/Application.Ringtoets/App.xaml.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag ba8f5d8f0bc75ecf1792534019c6b84a2378e395 refers to a dead (removed) revision in file `Application/Ringtoets/src/Application.Ringtoets/Application.Riskeer.csproj'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag ba8f5d8f0bc75ecf1792534019c6b84a2378e395 refers to a dead (removed) revision in file `Application/Ringtoets/src/Application.Ringtoets/Properties/AssemblyInfo.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag ba8f5d8f0bc75ecf1792534019c6b84a2378e395 refers to a dead (removed) revision in file `Application/Ringtoets/src/Application.Ringtoets/Resources.Designer.cs'. Fisheye: No comparison available. Pass `N' to diff? Index: Application/Ringtoets/src/Application.Ringtoets/Ringtoets.ico =================================================================== diff -u -r4d67bb58184d12acb4ea8aedbc1da448ed54bcae -rba8f5d8f0bc75ecf1792534019c6b84a2378e395 Binary files differ Fisheye: Tag ba8f5d8f0bc75ecf1792534019c6b84a2378e395 refers to a dead (removed) revision in file `Application/Ringtoets/src/Application.Ringtoets/app.config'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag ba8f5d8f0bc75ecf1792534019c6b84a2378e395 refers to a dead (removed) revision in file `Application/Ringtoets/src/Application.Ringtoets/packages.config'. Fisheye: No comparison available. Pass `N' to diff? Index: Application/Ringtoets/src/Application.Riskeer/App.xaml =================================================================== diff -u --- Application/Ringtoets/src/Application.Riskeer/App.xaml (revision 0) +++ Application/Ringtoets/src/Application.Riskeer/App.xaml (revision ba8f5d8f0bc75ecf1792534019c6b84a2378e395) @@ -0,0 +1,34 @@ + + + + + + + + + + Index: Application/Ringtoets/src/Application.Riskeer/App.xaml.cs =================================================================== diff -u --- Application/Ringtoets/src/Application.Riskeer/App.xaml.cs (revision 0) +++ Application/Ringtoets/src/Application.Riskeer/App.xaml.cs (revision ba8f5d8f0bc75ecf1792534019c6b84a2378e395) @@ -0,0 +1,432 @@ +// Copyright (C) Stichting Deltares 2018. 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 System.Collections.Generic; +using System.Configuration; +using System.Diagnostics; +using System.DirectoryServices.AccountManagement; +using System.Globalization; +using System.IO; +using System.Linq; +using System.Reflection; +using System.Text.RegularExpressions; +using System.Threading; +using System.Windows; +using System.Windows.Controls.Primitives; +using System.Windows.Forms; +using Core.Common.Gui; +using Core.Common.Gui.Appenders; +using Core.Common.Gui.Forms.MainWindow; +using Core.Common.Gui.Settings; +using Core.Common.Util; +using Core.Common.Util.Settings; +using Core.Plugins.Chart; +using Core.Plugins.CommonTools; +using Core.Plugins.Map; +using Core.Plugins.ProjectExplorer; +using log4net; +using log4net.Appender; +using Ringtoets.ClosingStructures.Plugin; +using Ringtoets.DuneErosion.Plugin; +using Ringtoets.GrassCoverErosionInwards.Plugin; +using Ringtoets.GrassCoverErosionOutwards.Plugin; +using Ringtoets.HeightStructures.Plugin; +using Ringtoets.Integration.Data; +using Ringtoets.Integration.Forms; +using Ringtoets.Integration.Plugin; +using Ringtoets.MacroStabilityInwards.Plugin; +using Ringtoets.Piping.Plugin; +using Ringtoets.StabilityPointStructures.Plugin; +using Ringtoets.StabilityStoneCover.Plugin; +using Ringtoets.WaveImpactAsphaltCover.Plugin; +using Riskeer.Migration; +using Riskeer.Storage.Core; +using CoreCommonGuiResources = Core.Common.Gui.Properties.Resources; +using MessageBox = System.Windows.MessageBox; +#if DEVELOPMENT +using Demo.Riskeer.GUIs; + +#endif + +namespace Application.Riskeer +{ + /// + /// Interaction logic for App.xaml. + /// + public partial class App + { + // Start application after this process will exit (used during restart) + private const string argumentWaitForProcess = "--wait-for-process="; + + private const int numberOfDaysToKeepLogFiles = 30; + + private static readonly ILog log = LogManager.GetLogger(typeof(App)); + + private static GuiCore gui; + private static int waitForProcessId = -1; + private static string fileToOpen = string.Empty; + + private static Mutex singleInstanceMutex; + + static App() + { + SettingsHelper.Instance = new RingtoetsSettingsHelper(); + SetLanguage(); + + string userDisplay = UserDisplay(); + log.Info(string.Format(CoreCommonGuiResources.App_Starting_Ringtoets_version_0_by_user_0, + SettingsHelper.Instance.ApplicationVersion, + userDisplay)); + } + + private delegate void ExceptionDelegate(Exception exception); + + protected override void OnExit(ExitEventArgs e) + { + singleInstanceMutex?.ReleaseMutex(); + base.OnExit(e); + } + + /// + /// Runs the main Ringtoets application. + /// + private static void RunRingtoets() + { + string loaderDirectory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); + if (loaderDirectory != null) + { + Environment.CurrentDirectory = loaderDirectory; + } + + System.Windows.Forms.Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException, true); + + // handle exception from UI thread + System.Windows.Forms.Application.ThreadException += Application_ThreadException; + + // handle exception from all threads except UI + AppDomain.CurrentDomain.UnhandledException += AppDomain_UnhandledException; + + gui.Run(fileToOpen); + + // Ringtoets started, clean-up all possible memory + GC.Collect(); + GC.WaitForPendingFinalizers(); + } + + private void App_Startup(object sender, StartupEventArgs e) + { + ParseArguments(e.Args); + + WaitForPreviousInstanceToExit(); + if (ShutdownIfNotFirstInstance()) + { + return; + } + + DeleteOldLogFiles(); + + Resources.Add(SystemParameters.MenuPopupAnimationKey, PopupAnimation.None); + + var settings = new GuiCoreSettings + { + SupportEmailAddress = "www.helpdeskwater.nl", + SupportPhoneNumber = "+31 (0)88-797 7102", + MainWindowTitle = "Ringtoets", + ManualFilePath = "..\\Gebruikershandleiding Ringtoets 18.1.1.pdf" + }; + var mainWindow = new MainWindow(); + var projectMigrator = new RingtoetsProjectMigrator(new DialogBasedInquiryHelper(mainWindow)); + gui = new GuiCore(mainWindow, new StorageSqLite(), projectMigrator, new RingtoetsProjectFactory(), settings) + { + Plugins = + { + new ProjectExplorerPlugin(), + new CommonToolsPlugin(), + new RingtoetsPlugin(), + new ClosingStructuresPlugin(), + new StabilityPointStructuresPlugin(), + new WaveImpactAsphaltCoverPlugin(), + new GrassCoverErosionInwardsPlugin(), + new GrassCoverErosionOutwardsPlugin(), + new PipingPlugin(), + new HeightStructuresPlugin(), + new StabilityStoneCoverPlugin(), + new DuneErosionPlugin(), + new MacroStabilityInwardsPlugin(), + new ChartPlugin(), + new MapPlugin() +#if DEVELOPMENT + , + new DemoProjectPlugin() +#endif + } + }; + + RunRingtoets(); + + mainWindow.Show(); + } + + private static bool ParseFileArgument(string potentialPath) + { + if (potentialPath.Length > 0) + { + try + { + IOUtils.ValidateFilePath(potentialPath); + fileToOpen = potentialPath; + return true; + } + catch (ArgumentException) {} + } + + return false; + } + + /// + /// app.config has been configured to use + /// to write log files to the ringtoets user data folder. This method deletes the old log files + /// that have been written there. + /// + private void DeleteOldLogFiles() + { + try + { + IOUtils.DeleteOldFiles(GetLogFileDirectory(), "*.log", numberOfDaysToKeepLogFiles); + } + catch (Exception e) + { + if (e is ArgumentException || e is IOException) + { + return; + } + + throw; + } + } + + private bool ShutdownIfNotFirstInstance() + { + var hasMutex = false; + + try + { + if (!Debugger.IsAttached) + { + if (!AcquireSingleInstancePerUserMutex()) + { + MessageBox.Show(CoreCommonGuiResources.App_ShutdownIfNotFirstInstance_Cannot_start_multiple_instances_of_Ringtoets_Please_close_the_other_instance_first); + Shutdown(1); + return true; //done here + } + + hasMutex = true; + } + } + finally + { + if (!hasMutex) + { + singleInstanceMutex = null; + } + } + + return false; + } + + /// + /// If variable waitForProcessId > -1, the application will hold until + /// the process with that ID has exited. + /// + private static void WaitForPreviousInstanceToExit() + { + // Wait until previous version of Ringtoets has exited + if (waitForProcessId == -1) + { + return; + } + + try + { + Process process = Process.GetProcessById(waitForProcessId); + process.WaitForExit(); + } + catch + { + //Ignored, because the process may already be closed + } + } + + private static bool AcquireSingleInstancePerUserMutex() + { + var createdNew = false; + try + { + //include the user name in the (global) mutex to ensure we limit only the number of instances per + //user, not per system (essential on for example Citrix systems). + + //include the application name in the mutex to ensure we are allowed to start for example 'Sobek' + //and 'Morphan' side by side. + string applicationName = ConfigurationManager.AppSettings.AllKeys.Contains("applicationName") + ? ConfigurationManager.AppSettings["applicationName"] + : string.Empty; + + string mutexName = $"Ringtoets-single-instance-mutex-{Environment.UserName}-{applicationName}"; + singleInstanceMutex = new Mutex(true, mutexName, out createdNew); + } + catch (AbandonedMutexException) {} //might throw an abandoned mutex exception if the previous DS instance forcefully exited. + + return createdNew; + } + + private static void AppDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e) + { + Exception exception = e.ExceptionObject as Exception ?? new Exception(CoreCommonGuiResources.App_Unhandled_exception); + + HandleExceptionOnMainThread(exception); + } + + private static void Application_ThreadException(object sender, ThreadExceptionEventArgs e) + { + HandleExceptionOnMainThread(e.Exception); + } + + private static void HandleExceptionOnMainThread(Exception exception) + { + var control = (Control) gui.MainWindow.PropertyGrid; + + if (control != null && control.InvokeRequired) + { + // Invoke executes a delegate on the thread that owns _MainForms's underlying window handle. + control.Invoke(new ExceptionDelegate(HandleException), exception); + } + else + { + HandleException(exception); + } + } + + private static void HandleException(Exception exception) + { + log.Error(CoreCommonGuiResources.App_Unhandled_exception, exception); + + if (gui?.MainWindow != null) + { + using (var exceptionDialog = new ExceptionDialog(gui.MainWindow, gui, exception) + { + OpenLogClicked = () => gui.ApplicationCommands?.OpenLogFileExternal() + }) + { + if (exceptionDialog.ShowDialog() == DialogResult.OK) + { + Restart(); + + return; + } + } + } + + Environment.Exit(1); + } + + private static void Restart() + { + Process.Start(typeof(App).Assembly.Location, argumentWaitForProcess + Process.GetCurrentProcess().Id); + Environment.Exit(1); + } + + /// + /// Parses the process' start-up parameters. + /// + /// List of start-up parameters. + private static void ParseArguments(IEnumerable arguments) + { + var argumentWaitForProcessRegex = new Regex("^" + argumentWaitForProcess + @"(?\d+)$", RegexOptions.IgnoreCase); + foreach (string arg in arguments) + { + Match match = argumentWaitForProcessRegex.Match(arg); + if (match.Success) + { + int pid = int.Parse(match.Groups["processId"].Value); + if (pid > 0) + { + waitForProcessId = pid; + break; + } + } + + if (ParseFileArgument(arg)) + { + break; + } + } + } + + private static void SetLanguage() + { + string language = ConfigurationManager.AppSettings["language"]; + if (language != null) + { + var localMachineDateTimeFormat = (DateTimeFormatInfo) Thread.CurrentThread.CurrentCulture.DateTimeFormat.Clone(); + localMachineDateTimeFormat.DayNames = CultureInfo.InvariantCulture.DateTimeFormat.DayNames; + localMachineDateTimeFormat.MonthNames = CultureInfo.InvariantCulture.DateTimeFormat.MonthNames; + localMachineDateTimeFormat.AbbreviatedDayNames = CultureInfo.InvariantCulture.DateTimeFormat.AbbreviatedDayNames; + localMachineDateTimeFormat.AbbreviatedMonthGenitiveNames = CultureInfo.InvariantCulture.DateTimeFormat.AbbreviatedMonthGenitiveNames; + localMachineDateTimeFormat.AbbreviatedMonthNames = CultureInfo.InvariantCulture.DateTimeFormat.AbbreviatedMonthNames; + + var cultureInfo = new CultureInfo(language) + { + NumberFormat = Thread.CurrentThread.CurrentCulture.NumberFormat, + DateTimeFormat = localMachineDateTimeFormat + }; + + Thread.CurrentThread.CurrentUICulture = cultureInfo; + Thread.CurrentThread.CurrentCulture = cultureInfo; + } + } + + private static string UserDisplay() + { + try + { + return $"{UserPrincipal.Current.DisplayName} ({UserPrincipal.Current.SamAccountName})"; + } + catch (SystemException) + { + // Cannot only catch specified exceptions, as there are some hidden exception + // that can be thrown when calling UserPrincipal.Current. + return Environment.UserName; + } + } + + private static string GetLogFileDirectory() + { + FileAppender fileAppender = LogManager.GetAllRepositories() + .SelectMany(r => r.GetAppenders()) + .OfType() + .FirstOrDefault(); + return string.IsNullOrWhiteSpace(fileAppender?.File) + ? string.Empty + : Path.GetDirectoryName(fileAppender.File); + } + } +} \ No newline at end of file Index: Application/Ringtoets/src/Application.Riskeer/Application.Riskeer.csproj =================================================================== diff -u --- Application/Ringtoets/src/Application.Riskeer/Application.Riskeer.csproj (revision 0) +++ Application/Ringtoets/src/Application.Riskeer/Application.Riskeer.csproj (revision ba8f5d8f0bc75ecf1792534019c6b84a2378e395) @@ -0,0 +1,244 @@ + + + + $(MSBuildThisFileDirectory) + Debug + x86 + Library + $(SolutionDir)\bin\$(Configuration)\ + $(OutputPath) + x86 + 4 + true + Properties + v4.0 + 512 + {4A7D6720-4AA1-4F0B-A796-A0436DB3D7D7} + WinExe + Application.Riskeer + Riskeer + Always + + + true + false + DEBUG;TRACE;DEVELOPMENT + + + none + true + TRACE;DEVELOPMENT + + + TRACE + none + + + TRACE;DEVELOPMENT + none + + + true + none + false + + + Ringtoets.ico + + + + ..\..\..\..\packages\EntityFramework.6.0.0\lib\net40\EntityFramework.dll + True + + + ..\..\..\..\packages\EntityFramework.6.0.0\lib\net40\EntityFramework.SqlServer.dll + + + False + ..\..\..\..\packages\Fluent.Ribbon.3.4.0\lib\net40\Fluent.dll + + + ..\..\..\..\packages\log4net.2.0.4\lib\net40-full\log4net.dll + + + False + + + False + + + + + + ..\..\..\..\packages\System.Data.SQLite.Core.1.0.106.0\lib\net40\System.Data.SQLite.dll + True + + + ..\..\..\..\packages\System.Data.SQLite.EF6.1.0.106.0\lib\net40\System.Data.SQLite.EF6.dll + True + + + + + + + + + App.xaml + + + + + + {3bbfd65b-b277-4e50-ae6d-bd24c3434609} + Core.Common.Base + False + + + {9A2D67E6-26AC-4D17-B11A-2B4372F2F572} + Core.Common.Controls + False + + + {30e4c2ae-719e-4d70-9fa9-668a9767fbfa} + Core.Common.Gui + False + + + {F49BD8B2-332A-4C91-A196-8CCE0A2C7D98} + Core.Common.Util + False + + + {4163B996-3455-4324-A38A-9F2F0E6FCB52} + Core.Plugins.Chart + False + + + {93E73FAB-FAE8-49C6-9ABB-27D24DF761F6} + Core.Plugins.CommonTools + False + + + {610E0A9C-1997-4C43-A10E-39D4C66ADA93} + Core.Plugins.Map + False + + + {ED20DBA9-D577-423F-A68D-A0A8130FB10B} + Core.Plugins.ProjectExplorer + False + + + {ffe3a667-3a4c-4f48-bc6b-1589867fcb41} + Demo.Riskeer + False + + + {7DA0AB85-828D-4B1D-B532-58B89E39BEF5} + Ringtoets.ClosingStructures.Plugin + False + + + {83885FB9-A87B-4D43-AF27-43EA44A84E42} + Ringtoets.DuneErosion.Plugin + False + + + {AD0CDC89-0A00-4068-AEEC-9838863C2FE8} + Ringtoets.Integration.Forms + False + + + {b6b27968-6b39-48df-b2e5-cbabf362808c} + Ringtoets.MacroStabilityInwards.Plugin + False + + + {ac4f7f48-f674-4e32-ab35-9c726605f684} + Riskeer.Migration + False + + + {E3DF5559-97D9-4038-BBE6-2E3DFB4F4C68} + Ringtoets.StabilityPointStructures.Plugin + False + + + {50963f12-448c-41ba-a62c-cdb0ab8d21e0} + Riskeer.Storage.Core + False + + + {83A782F1-BA78-4D5C-B213-39066605AFD8} + Ringtoets.WaveImpactAsphaltCover.Plugin + False + + + {20955E2A-8CEB-46B0-ADC4-A97D4C6BBDF5} + Ringtoets.GrassCoverErosionInwards.Plugin + False + + + {9B3ED064-E29F-4D38-85E0-3A82B77BA702} + Ringtoets.GrassCoverErosionOutwards.Plugin + False + + + {9AF85B2B-8D78-43C5-9542-FBB3A14EAB36} + Ringtoets.HeightStructures.Plugin + False + + + {11F1F874-45AF-43E4-8AE5-15A5C9593E28} + Ringtoets.Integration.Data + False + + + {c8383b76-b3f1-4e6e-b56c-527b469fa20a} + Ringtoets.Integration.Plugin + False + + + {1D3D58B6-EF7E-401E-92A0-104067D222EE} + Ringtoets.Piping.Plugin + False + + + {9ddc42cc-a2cc-4900-a711-aa1dd6d3a94a} + Ringtoets.StabilityStoneCover.Plugin + False + + + + + Copying.licenseheader + + + Designer + + + + + + MSBuild:Compile + Designer + + + + + + + + + Properties\GlobalAssembly.cs + + + + + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + \ No newline at end of file Index: Application/Ringtoets/src/Application.Riskeer/Properties/AssemblyInfo.cs =================================================================== diff -u --- Application/Ringtoets/src/Application.Riskeer/Properties/AssemblyInfo.cs (revision 0) +++ Application/Ringtoets/src/Application.Riskeer/Properties/AssemblyInfo.cs (revision ba8f5d8f0bc75ecf1792534019c6b84a2378e395) @@ -0,0 +1,27 @@ +// Copyright (C) Stichting Deltares 2018. 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.Reflection; +using log4net.Config; + +[assembly: XmlConfigurator(Watch = true)] +[assembly: AssemblyTitle("Riskeer")] +[assembly: AssemblyProduct("Riskeer")] \ No newline at end of file Index: Application/Ringtoets/src/Application.Riskeer/Resources.Designer.cs =================================================================== diff -u --- Application/Ringtoets/src/Application.Riskeer/Resources.Designer.cs (revision 0) +++ Application/Ringtoets/src/Application.Riskeer/Resources.Designer.cs (revision ba8f5d8f0bc75ecf1792534019c6b84a2378e395) @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + Resources\bug--exclamation.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file Index: Application/Ringtoets/src/Application.Riskeer/Ringtoets.ico =================================================================== diff -u Binary files differ Index: Application/Ringtoets/src/Application.Riskeer/app.config =================================================================== diff -u --- Application/Ringtoets/src/Application.Riskeer/app.config (revision 0) +++ Application/Ringtoets/src/Application.Riskeer/app.config (revision ba8f5d8f0bc75ecf1792534019c6b84a2378e395) @@ -0,0 +1,103 @@ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file Index: Application/Ringtoets/src/Application.Riskeer/packages.config =================================================================== diff -u --- Application/Ringtoets/src/Application.Riskeer/packages.config (revision 0) +++ Application/Ringtoets/src/Application.Riskeer/packages.config (revision ba8f5d8f0bc75ecf1792534019c6b84a2378e395) @@ -0,0 +1,29 @@ + + + + + + + + \ No newline at end of file Index: Ringtoets.sln =================================================================== diff -u -r989f3f218eadf42dc262b49c3b45d7c3886d2668 -rba8f5d8f0bc75ecf1792534019c6b84a2378e395 --- Ringtoets.sln (.../Ringtoets.sln) (revision 989f3f218eadf42dc262b49c3b45d7c3886d2668) +++ Ringtoets.sln (.../Ringtoets.sln) (revision ba8f5d8f0bc75ecf1792534019c6b84a2378e395) @@ -12,7 +12,7 @@ EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Plugins", "Plugins", "{FE36E7E0-D5F7-48E3-9730-D05443351EAD}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Application.Riskeer", "Application\Ringtoets\src\Application.Ringtoets\Application.Riskeer.csproj", "{4A7D6720-4AA1-4F0B-A796-A0436DB3D7D7}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Application.Riskeer", "Application\Ringtoets\src\Application.Riskeer\Application.Riskeer.csproj", "{4A7D6720-4AA1-4F0B-A796-A0436DB3D7D7}" ProjectSection(ProjectDependencies) = postProject {EC2DEF03-71FE-48A0-AB85-31E13112E4A1} = {EC2DEF03-71FE-48A0-AB85-31E13112E4A1} {C6309704-D67B-434C-BC98-9F8910BC1D10} = {C6309704-D67B-434C-BC98-9F8910BC1D10}