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);