Results printing and saving improced, correct order of tests, etc.
This commit is contained in:
@@ -23,7 +23,8 @@ namespace TBF.BenchControl.ResultsWriters.Basic
|
||||
/// <summary>
|
||||
/// Results to print
|
||||
/// </summary>
|
||||
IList<Entities.TestResult> results;
|
||||
Entities.Procedure procedure;
|
||||
IList<Entities.TestResult> unsortedResults;
|
||||
DateTime dateTime;
|
||||
StreamWriter writer;
|
||||
|
||||
@@ -81,30 +82,29 @@ namespace TBF.BenchControl.ResultsWriters.Basic
|
||||
/// <summary>
|
||||
/// Writes the test cycle results into a file, Events: Event.ResultsWritten
|
||||
/// </summary>
|
||||
/// <param name="results">Results to write into the file</param>
|
||||
/// <param name="procedure">Procedure to print the results of</param>
|
||||
/// <param name="unsortedResults">Results to write into the file</param>
|
||||
/// <returns>Reference to the operation</returns>
|
||||
public IOperation WriteResultsOp(IList<Entities.TestResult> results)
|
||||
public IOperation WriteResultsOp(Entities.Procedure procedure, IList<Entities.TestResult> unsortedResults)
|
||||
{
|
||||
if ((results == null) || (results.Count == 0) ||
|
||||
((results[0].MetersKind != Entities.MetersKind.Single) &&
|
||||
(results[0].MetersKind != Entities.MetersKind.Combined)))
|
||||
{
|
||||
writer = null;
|
||||
return this;
|
||||
}
|
||||
|
||||
if (results[0].MetersKind == Entities.MetersKind.Single)
|
||||
if ((procedure == null) || (unsortedResults == null) || (unsortedResults.Count < 1))
|
||||
{
|
||||
resultItems = Forms.ResultItemSpec.FromStrArray(Program.LocalSettings.RsltItems_Disk_SingleWM);
|
||||
combined = false;
|
||||
return null;
|
||||
}
|
||||
|
||||
this.procedure = procedure;
|
||||
this.unsortedResults = unsortedResults;
|
||||
|
||||
combined = (procedure.MetersKind == Entities.MetersKind.Combined);
|
||||
if (combined)
|
||||
{
|
||||
resultItems = Forms.ResultItemSpec.FromStrArray(Program.LocalSettings.RsltItems_Disk_CombinedWM);
|
||||
}
|
||||
else
|
||||
{
|
||||
resultItems = Forms.ResultItemSpec.FromStrArray(Program.LocalSettings.RsltItems_Disk_CombinedWM);
|
||||
combined = true;
|
||||
resultItems = Forms.ResultItemSpec.FromStrArray(Program.LocalSettings.RsltItems_Disk_SingleWM);
|
||||
}
|
||||
|
||||
this.results = results;
|
||||
try
|
||||
{
|
||||
dateTime = DateTime.Now;
|
||||
@@ -126,7 +126,7 @@ namespace TBF.BenchControl.ResultsWriters.Basic
|
||||
///----------
|
||||
/// Header
|
||||
///----------
|
||||
writer.WriteLine(results[0].ProtocolTitle);
|
||||
writer.WriteLine(unsortedResults[0].ProtocolTitle);
|
||||
writer.WriteLine(string.Empty);
|
||||
|
||||
string[] leftColumn = new string[]
|
||||
@@ -142,18 +142,18 @@ namespace TBF.BenchControl.ResultsWriters.Basic
|
||||
|
||||
string[] rightColumn = new string[]
|
||||
{
|
||||
results[0].CycleNr.ToString(),
|
||||
unsortedResults[0].CycleNr.ToString(),
|
||||
//dateTime.ToShortDateString() + " " + dateTime.ToShortTimeString(),
|
||||
string.Format("{0}.{1}.{2} {3}:{4}", dateTime.Year.ToString("D4"),
|
||||
dateTime.Month.ToString("D2"),
|
||||
dateTime.Day.ToString("D2"),
|
||||
dateTime.Hour.ToString("D2"),
|
||||
dateTime.Minute.ToString("D2")),
|
||||
results[0].ProcedureName,
|
||||
procedure.Name,
|
||||
Entities.User.CurrentUser.Name,
|
||||
results[0].AmbientTempAve.ToString("F1") + " °C",
|
||||
results[0].AmbientPressAve.ToString("F0") + " mbar",
|
||||
results[0].AmbientHumiAve.ToString("F0") + " %",
|
||||
unsortedResults[0].AmbientTempAve.ToString("F1") + " °C",
|
||||
unsortedResults[0].AmbientPressAve.ToString("F0") + " mbar",
|
||||
unsortedResults[0].AmbientHumiAve.ToString("F0") + " %",
|
||||
};
|
||||
|
||||
/// Determine max. left column width in characters
|
||||
@@ -190,6 +190,8 @@ namespace TBF.BenchControl.ResultsWriters.Basic
|
||||
/// <param name="wmNr">Water meter number</param>
|
||||
void WriteSingleWM(int wmNr)
|
||||
{
|
||||
IList<Entities.TestResult> results = Utils.GetSortedTestResults(procedure, unsortedResults, wmNr);
|
||||
|
||||
/// Determine column widths
|
||||
int[] columnWidths = new int[resultItems.Count];
|
||||
int totalWidth = 0;
|
||||
@@ -198,23 +200,28 @@ namespace TBF.BenchControl.ResultsWriters.Basic
|
||||
columnWidths[i] = resultItems[i].ClmnHeaderText.Length;
|
||||
foreach (var tr in results)
|
||||
{
|
||||
int len = resultItems[i].Print(tr.Meters[wmNr]).Length;
|
||||
if (len > columnWidths[i]) columnWidths[i] = len;
|
||||
if (tr != null)
|
||||
{
|
||||
int len = resultItems[i].Print(tr.Meters[wmNr]).Length;
|
||||
if (len > columnWidths[i]) columnWidths[i] = len;
|
||||
}
|
||||
}
|
||||
totalWidth += columnWidths[i];
|
||||
}
|
||||
totalWidth += 3 * (resultItems.Count - 1);
|
||||
|
||||
|
||||
/// Write water meter number and s/n
|
||||
writer.Write(string.Format("Water meter {0}", wmNr + 1));
|
||||
if (!string.IsNullOrEmpty(results[0].Meters[wmNr].SerialNr))
|
||||
if (!string.IsNullOrEmpty(unsortedResults[0].Meters[wmNr].SerialNr))
|
||||
{
|
||||
writer.Write(string.Format(", s/n: {0}", results[0].Meters[wmNr].SerialNr));
|
||||
writer.Write(string.Format(", s/n: {0}", unsortedResults[0].Meters[wmNr].SerialNr));
|
||||
}
|
||||
writer.WriteLine(string.Empty);
|
||||
|
||||
|
||||
/// Horizontal line
|
||||
writer.WriteLine(new String('-', totalWidth));
|
||||
writer.WriteLine(new String('-', totalWidth)); /// Horizontal line above the header
|
||||
|
||||
|
||||
/// Write column headers
|
||||
for (int i = 0; i < resultItems.Count; i++)
|
||||
@@ -227,26 +234,35 @@ namespace TBF.BenchControl.ResultsWriters.Basic
|
||||
writer.WriteLine(string.Empty);
|
||||
}
|
||||
|
||||
/// Horizontal line
|
||||
writer.WriteLine(new String('-', totalWidth));
|
||||
|
||||
writer.WriteLine(new String('-', totalWidth)); /// Horizontal line between the header and the body
|
||||
|
||||
|
||||
/// Write table data
|
||||
foreach (var tr in results)
|
||||
{
|
||||
for (int i = 0; i < resultItems.Count; i++)
|
||||
if (tr != null)
|
||||
{
|
||||
string text = resultItems[i].Print(tr.Meters[wmNr]);
|
||||
writer.Write(text);
|
||||
for (int i = 0; i < resultItems.Count; i++)
|
||||
{
|
||||
string text = resultItems[i].Print(tr.Meters[wmNr]);
|
||||
|
||||
if (i < resultItems.Count - 1)
|
||||
writer.Write(new string(' ', columnWidths[i] - text.Length + 3));
|
||||
else
|
||||
writer.WriteLine(string.Empty);
|
||||
/// Get rid of the color information
|
||||
string[] texts = text.Split(new char[] { '|' });
|
||||
if (texts.Length == 2) { text = texts[0]; }
|
||||
|
||||
writer.Write(text);
|
||||
|
||||
if (i < resultItems.Count - 1)
|
||||
writer.Write(new string(' ', columnWidths[i] - text.Length + 3));
|
||||
else
|
||||
writer.WriteLine(string.Empty);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// Horizontal line
|
||||
writer.WriteLine(new String('-', totalWidth));
|
||||
|
||||
writer.WriteLine(new String('-', totalWidth)); /// Horizontal line below the body
|
||||
|
||||
writer.WriteLine(string.Empty);
|
||||
writer.WriteLine(string.Empty);
|
||||
@@ -258,6 +274,8 @@ namespace TBF.BenchControl.ResultsWriters.Basic
|
||||
/// <param name="wmNr">Water meter number</param>
|
||||
void WriteCombinedWM(int wmNr)
|
||||
{
|
||||
IList<Entities.TestResult> results = Utils.GetSortedTestResults(procedure, unsortedResults, wmNr);
|
||||
|
||||
/// Determin column widths
|
||||
int[] columnWidths = new int[resultItems.Count];
|
||||
int totalWidth = 0;
|
||||
@@ -266,16 +284,32 @@ namespace TBF.BenchControl.ResultsWriters.Basic
|
||||
columnWidths[i] = resultItems[i].ClmnHeaderText.Length;
|
||||
foreach (var tr in results)
|
||||
{
|
||||
int len = resultItems[i].PrintCombined(tr.Meters[2*wmNr], tr.Meters[2*wmNr+1], tr.CombinedMeters[wmNr]).Length;
|
||||
if (len > columnWidths[i]) columnWidths[i] = len;
|
||||
if (tr != null)
|
||||
{
|
||||
int len = resultItems[i].PrintCombined(tr.Meters[2 * wmNr], tr.Meters[2 * wmNr + 1], tr.CombinedMeters[wmNr]).Length;
|
||||
if (len > columnWidths[i]) columnWidths[i] = len;
|
||||
}
|
||||
}
|
||||
totalWidth += columnWidths[i];
|
||||
}
|
||||
totalWidth += 3 * (resultItems.Count - 1);
|
||||
|
||||
writer.WriteLine(string.Format("Water meter {0}, Main s/n: {1}, Aux. s/n:{2}", wmNr + 1, results[0].Meters[2 * wmNr].SerialNr, results[0].Meters[2 * wmNr + 1].SerialNr));
|
||||
|
||||
writer.WriteLine(new String('-', totalWidth));
|
||||
/// Write water meter number and two s/n-s
|
||||
writer.Write(string.Format("Water meter {0}", wmNr + 1));
|
||||
if (!string.IsNullOrEmpty(unsortedResults[0].Meters[2 * wmNr].SerialNr))
|
||||
{
|
||||
writer.Write(string.Format(", Main s/n: {0}", unsortedResults[0].Meters[2 * wmNr].SerialNr));
|
||||
}
|
||||
if (!string.IsNullOrEmpty(unsortedResults[0].Meters[2 * wmNr + 1].SerialNr))
|
||||
{
|
||||
writer.Write(string.Format(", Aux. s/n:{0}", unsortedResults[0].Meters[2 * wmNr + 1].SerialNr));
|
||||
}
|
||||
writer.WriteLine(string.Empty);
|
||||
|
||||
|
||||
writer.WriteLine(new String('-', totalWidth)); /// Horizontal line above the header
|
||||
|
||||
|
||||
for (int i = 0; i < resultItems.Count; i++)
|
||||
{
|
||||
@@ -287,28 +321,34 @@ namespace TBF.BenchControl.ResultsWriters.Basic
|
||||
writer.WriteLine(string.Empty);
|
||||
}
|
||||
|
||||
writer.WriteLine(new String('-', totalWidth));
|
||||
|
||||
writer.WriteLine(new String('-', totalWidth)); /// Horizontal line between the header and the body
|
||||
|
||||
|
||||
foreach (var tr in results)
|
||||
{
|
||||
foreach (var item in resultItems) writer.Write(item.PrintCombined(tr.Meters[2 * wmNr], tr.Meters[2 * wmNr + 1], tr.CombinedMeters[wmNr]) + " ");
|
||||
writer.WriteLine(string.Empty);
|
||||
}
|
||||
foreach (var tr in results)
|
||||
{
|
||||
for (int i = 0; i < resultItems.Count; i++)
|
||||
if (tr != null)
|
||||
{
|
||||
string text = resultItems[i].PrintCombined(tr.Meters[2 * wmNr], tr.Meters[2 * wmNr + 1], tr.CombinedMeters[wmNr]);
|
||||
writer.Write(text);
|
||||
for (int i = 0; i < resultItems.Count; i++)
|
||||
{
|
||||
string text = resultItems[i].PrintCombined(tr.Meters[2 * wmNr], tr.Meters[2 * wmNr + 1], tr.CombinedMeters[wmNr]);
|
||||
|
||||
if (i < resultItems.Count - 1)
|
||||
writer.Write(new string(' ', columnWidths[i] - text.Length + 3));
|
||||
else
|
||||
writer.WriteLine(string.Empty);
|
||||
/// Get rid of the color information
|
||||
string[] texts = text.Split(new char[] { '|' });
|
||||
if (texts.Length == 2) { text = texts[0]; }
|
||||
|
||||
writer.Write(text);
|
||||
|
||||
if (i < resultItems.Count - 1)
|
||||
writer.Write(new string(' ', columnWidths[i] - text.Length + 3));
|
||||
else
|
||||
writer.WriteLine(string.Empty);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
writer.WriteLine(new String('-', totalWidth));
|
||||
writer.WriteLine(new String('-', totalWidth)); /// Horizontal line below the body
|
||||
|
||||
writer.WriteLine(string.Empty);
|
||||
writer.WriteLine(string.Empty);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user