From a9fd07a0e93ab1030a203281debb7543602d6ebf Mon Sep 17 00:00:00 2001
From: Markus Quaritsch <markus.quaritsch@tugraz.at>
Date: Tue, 20 Jun 2017 08:34:57 +0200
Subject: [PATCH] add parameter to add version information to vsum and vmod
 files

---
 .../VectoCore/OutputData/FileIO/FileOutputWriter.cs |  4 ++--
 VectoCore/VectoCore/Utils/VectoCSVFile.cs           | 13 ++++++++++---
 VectoCore/VectoCoreTest/FileIO/VectoCSVFileTest.cs  | 10 +++++-----
 3 files changed, 17 insertions(+), 10 deletions(-)

diff --git a/VectoCore/VectoCore/OutputData/FileIO/FileOutputWriter.cs b/VectoCore/VectoCore/OutputData/FileIO/FileOutputWriter.cs
index 19e3a3385e..738ddb1d5a 100644
--- a/VectoCore/VectoCore/OutputData/FileIO/FileOutputWriter.cs
+++ b/VectoCore/VectoCore/OutputData/FileIO/FileOutputWriter.cs
@@ -79,7 +79,7 @@ namespace TUGraz.VectoCore.OutputData.FileIO
 
 		public void WriteSumData(DataTable data)
 		{
-			VectoCSVFile.Write(SumFileName, data);
+			VectoCSVFile.Write(SumFileName, data, true);
 		}
 
 		public string GetModDataFileName(string runName, string cycleName, string runSuffix)
@@ -96,7 +96,7 @@ namespace TUGraz.VectoCore.OutputData.FileIO
 
 		public void WriteModData(string runName, string cycleName, string runSuffix, DataTable modData)
 		{
-			VectoCSVFile.Write(GetModDataFileName(runName, cycleName, runSuffix), modData);
+			VectoCSVFile.Write(GetModDataFileName(runName, cycleName, runSuffix), modData, true);
 		}
 
 		public Stream WriteStream(ReportType type)
diff --git a/VectoCore/VectoCore/Utils/VectoCSVFile.cs b/VectoCore/VectoCore/Utils/VectoCSVFile.cs
index 89997c601c..4074edab9e 100644
--- a/VectoCore/VectoCore/Utils/VectoCSVFile.cs
+++ b/VectoCore/VectoCore/Utils/VectoCSVFile.cs
@@ -35,6 +35,7 @@ using System.Data;
 using System.Globalization;
 using System.IO;
 using System.Linq;
+using System.Reflection;
 using System.Text;
 using System.Text.RegularExpressions;
 using TUGraz.VectoCommon.Exceptions;
@@ -178,10 +179,11 @@ namespace TUGraz.VectoCore.Utils
 		/// </summary>
 		/// <param name="fileName">Path to the file.</param>
 		/// <param name="table">The Datatable.</param>
-		public static void Write(string fileName, DataTable table)
+		/// <param name="addVersionHeader"></param>
+		public static void Write(string fileName, DataTable table, bool addVersionHeader = false)
 		{
 			using (var sw = new StreamWriter(new FileStream(fileName, FileMode.Create), Encoding.UTF8)) {
-				Write(sw, table);
+				Write(sw, table, addVersionHeader);
 			}
 		}
 
@@ -192,11 +194,16 @@ namespace TUGraz.VectoCore.Utils
 		/// </summary>
 		/// <param name="writer"></param>
 		/// <param name="table"></param>
-		public static void Write(StreamWriter writer, DataTable table)
+		/// <param name="addVersionHeader"></param>
+		public static void Write(StreamWriter writer, DataTable table, bool addVersionHeader = false)
 		{
 			if (writer == null) {
 				return;
 			}
+			if (addVersionHeader) {
+				var vectodll = AssemblyName.GetAssemblyName("VectoCore.dll");
+				writer.WriteLine("# VECTO {0} - {1}", vectodll.Version, DateTime.Now.ToString("dd.MM.yyyy HH:mm"));
+			}
 			var header = table.Columns.Cast<DataColumn>().Select(col => col.Caption ?? col.ColumnName);
 			writer.WriteLine(string.Join(Delimiter, header));
 
diff --git a/VectoCore/VectoCoreTest/FileIO/VectoCSVFileTest.cs b/VectoCore/VectoCoreTest/FileIO/VectoCSVFileTest.cs
index 77d4ccd1f3..c23c4e77f8 100644
--- a/VectoCore/VectoCoreTest/FileIO/VectoCSVFileTest.cs
+++ b/VectoCore/VectoCoreTest/FileIO/VectoCSVFileTest.cs
@@ -152,11 +152,11 @@ namespace TUGraz.VectoCore.Tests.FileIO
 		{
 			var stream = @"#a,b,c
 						   #21,22,23
-                           #674,95,96
-                           a,b,c
-                           #9,8,7
-                           1,2,3
-                           4,5,6".ToStream();
+						   #674,95,96
+						   a,b,c
+						   #9,8,7
+						   1,2,3
+						   4,5,6".ToStream();
 			var table = VectoCSVFile.ReadStream(stream);
 
 			CollectionAssert.AreEqual(new[] { "a", "b", "c" }, table.Columns.Cast<DataColumn>().Select(c => c.ColumnName));
-- 
GitLab