diff --git a/Common/Ui/GenesisToolBox/GenesisToolBox.csproj b/Common/Ui/GenesisToolBox/GenesisToolBox.csproj
index f8786c75..04b57624 100644
--- a/Common/Ui/GenesisToolBox/GenesisToolBox.csproj
+++ b/Common/Ui/GenesisToolBox/GenesisToolBox.csproj
@@ -430,6 +430,7 @@
+
diff --git a/Common/Ui/GenesisToolBox/Infrastructure/ParseExtensions.cs b/Common/Ui/GenesisToolBox/Infrastructure/ParseExtensions.cs
new file mode 100644
index 00000000..1ed6175c
--- /dev/null
+++ b/Common/Ui/GenesisToolBox/Infrastructure/ParseExtensions.cs
@@ -0,0 +1,27 @@
+namespace Xylem.Common.Ui.GenesisToolBox.Infrastructure
+{
+ using System.Globalization;
+ using System.Threading;
+
+ internal static class ParseExtensions
+ {
+ private static readonly NumberStyles any = NumberStyles.Any;
+ private static readonly CultureInfo de = new CultureInfo("de-DE");
+ private static readonly CultureInfo us = new CultureInfo("en-US");
+ private static bool IsDECulture => Thread.CurrentThread.CurrentCulture.Name.ToLower().Contains("de");
+
+ internal static bool TryParse(this string stringValue, out double value)
+ {
+ if (IsDECulture)
+ {
+ return double.TryParse(stringValue, any, de, out value)
+ || double.TryParse(stringValue, any, us, out value);
+ }
+ else
+ {
+ return double.TryParse(stringValue, any, us, out value)
+ || double.TryParse(stringValue, any, de, out value);
+ }
+ }
+ }
+}
diff --git a/Common/Ui/GenesisToolBox/Infrastructure/TempMeterModels.cs b/Common/Ui/GenesisToolBox/Infrastructure/TempMeterModels.cs
index f31dfed7..43f31c0a 100644
--- a/Common/Ui/GenesisToolBox/Infrastructure/TempMeterModels.cs
+++ b/Common/Ui/GenesisToolBox/Infrastructure/TempMeterModels.cs
@@ -88,15 +88,12 @@
private const string MESSUREMENTS_FILE = @"_messurements.txt";
private const string AGGREGATIONS_FILE = @"_aggregations.txt";
private const string BACKWARDS_FILE = @"_backwards.txt";
- private const NumberStyles ANY = NumberStyles.Any;
private readonly string pcbId;
private readonly string messurementsFile;
private readonly string aggregationsFile;
private readonly string backwardsFile;
private readonly ITempMeterForm tempMeterForm;
- private readonly CultureInfo en;
- private readonly CultureInfo de;
private TemperatureSource temperatureSource;
private Timer longTimer;
@@ -117,8 +114,6 @@
}
this.temperatureSource = new TemperatureSource();
- this.en = new CultureInfo("en-US");
- this.de = new CultureInfo("de-DE");
}
public void StartMessuring()
@@ -266,8 +261,8 @@
try
{
- var tParsed = double.TryParse(tString, ANY, this.en, out currentT) || double.TryParse(tString, ANY, this.de, out currentT);
- var tofParsed = double.TryParse(tofString, ANY, this.en, out currentTOF) || double.TryParse(tofString, ANY, this.de, out currentTOF);
+ var tParsed = tString.TryParse(out currentT);
+ var tofParsed = tofString.TryParse(out currentTOF);
if (!tParsed || !tofParsed)
{
@@ -336,11 +331,11 @@
var seconds = default(int);
var pcbParsed = int.TryParse(pcbString, out pcbId);
- var tParsed = double.TryParse(avgTString, ANY, this.en, out avgT) || double.TryParse(avgTString, ANY, this.de, out avgT);
- var dtParsed = double.TryParse(difTString, ANY, this.en, out difT) || double.TryParse(difTString, ANY, this.de, out difT);
- var secParsed = int.TryParse(secondsString, ANY, this.en, out seconds) || int.TryParse(secondsString, ANY, this.de, out seconds);
- var tofParsed = double.TryParse(avgTOFString, ANY, this.en, out avgTOF) || double.TryParse(avgTOFString, ANY, this.de, out avgTOF);
- var dtofParsed = double.TryParse(difTOFString, ANY, this.en, out difTOF) || double.TryParse(difTOFString, ANY, this.de, out difTOF);
+ var tParsed = avgTString.TryParse(out avgT);
+ var dtParsed = difTString.TryParse(out difT);
+ var secParsed = int.TryParse(secondsString, out seconds) || int.TryParse(secondsString, out seconds);
+ var tofParsed = avgTOFString.TryParse(out avgTOF);
+ var dtofParsed = difTOFString.TryParse(out difTOF);
if (!pcbParsed || !tParsed || !tofParsed || !dtParsed || !dtofParsed)
{
@@ -611,8 +606,8 @@
var avgTOF = default(double);
var pcbParsed = int.TryParse(pcbString, out pcbId);
- var tParsed = double.TryParse(avgTString, ANY, this.en, out avgT) || double.TryParse(avgTString, ANY, this.de, out avgT);
- var tofParsed = double.TryParse(avgTOFString, ANY, this.en, out avgTOF) || double.TryParse(avgTOFString, ANY, this.de, out avgTOF);
+ var tParsed = avgTString.TryParse(out avgT);
+ var tofParsed = avgTOFString.TryParse(out avgTOF);
if (!pcbParsed || !tParsed || !tofParsed)
{