Index: DamClients/DamUI/branches/DamUI 19.1/src/DamClientsLibrary/Deltares.Dam.Data/DamProject.cs =================================================================== diff -u -r2715 -r3570 --- DamClients/DamUI/branches/DamUI 19.1/src/DamClientsLibrary/Deltares.Dam.Data/DamProject.cs (.../DamProject.cs) (revision 2715) +++ DamClients/DamUI/branches/DamUI 19.1/src/DamClientsLibrary/Deltares.Dam.Data/DamProject.cs (.../DamProject.cs) (revision 3570) @@ -51,6 +51,7 @@ private string projectFileName; private static string testProgramVersion; private DamProjectData damProjectData; + private const string CalculationLogFile = "calclog.txt"; public static ProjectPathLocation ProjectWorkingPathLocation = ProjectPathLocation.InApplicationMap; public static string UserWorkingPath = DamProject.GetNewTempDirectory(); @@ -221,7 +222,7 @@ { if (string.IsNullOrWhiteSpace(fileName)) throw new ArgumentException("fileName"); var project = new DamProject() { DamProjectData = data }; - + project.IsSaveRequestedByUser = true; project.SaveXMLProject(fileName, null); } @@ -633,7 +634,7 @@ } /// - /// Save the project in XML format + /// Save the project in XML format (and the log to a text file) /// /// /// @@ -673,9 +674,28 @@ var xmlSerializer = new XmlSerializer(); xmlSerializer.Serialize(damProjectData, fileName); + if (!IsSaveRequestedByUser) + { + SaveCalculationLogToTextFile(damProjectData.CalculationMessages, fileName); + } }); } + private void SaveCalculationLogToTextFile(List CalculationMessages, string fileName) + { + if (CalculationMessages != null && CalculationMessages.Count > 0) + { + var messages = new List(); + foreach (var calculationMessage in CalculationMessages) + { + messages.Add(calculationMessage.MessageType + ": " + calculationMessage.Message + ", " + + calculationMessage.Detail + ", " + calculationMessage.SubjectName); + } + fileName = Path.ChangeExtension(fileName, DateTime.Now.ToFileTime() + CalculationLogFile); + System.IO.File.WriteAllLines(fileName, messages); + } + } + public void ImportWaterLevelTimeSeries() { @@ -708,6 +728,14 @@ } } + /// + /// Gets or sets a value indicating whether this instance is save requested by user. + /// + /// + /// true if this instance is save requested by user; otherwise, false. + /// + public bool IsSaveRequestedByUser { get; set; } + private void DeleteResultData() { damProjectData.DeleteResults(); Index: DamClients/DamUI/branches/DamUI 19.1/src/Dam/Forms/DamPlugin.cs =================================================================== diff -u -r2715 -r3570 --- DamClients/DamUI/branches/DamUI 19.1/src/Dam/Forms/DamPlugin.cs (.../DamPlugin.cs) (revision 2715) +++ DamClients/DamUI/branches/DamUI 19.1/src/Dam/Forms/DamPlugin.cs (.../DamPlugin.cs) (revision 3570) @@ -696,8 +696,8 @@ openingMessage = LocalizationManager.GetTranslatedText(this, "CalculationFailed"); LocalizedMessageBox.ShowTranslatedText(openingMessage + paragraphSepatator + timeMessage + paragraphSepatator + e.Message); } - - this.damProject.SaveXMLProject(this.damProject.ProjectFileName, this.damProject); + damProject.IsSaveRequestedByUser = false; + damProject.SaveXMLProject(damProject.ProjectFileName, damProject); SetProperControlsAfterCalculation(); } @@ -1138,7 +1138,8 @@ // Save the data - this.damProject.SaveXMLProject(this.damProject.ProjectFileName, this.damProject); + damProject.IsSaveRequestedByUser = false; + damProject.SaveXMLProject(damProject.ProjectFileName, damProject); this.progressDelegate(1);