extension method for parsing doubles
This commit is contained in:
@@ -430,6 +430,7 @@
|
||||
</Compile>
|
||||
<Compile Include="Infrastructure\ADLoginModel.cs" />
|
||||
<Compile Include="Infrastructure\Appsettings.cs" />
|
||||
<Compile Include="Infrastructure\ParseExtensions.cs" />
|
||||
<Compile Include="Infrastructure\Software.cs" />
|
||||
<Compile Include="Infrastructure\SoftwareUser.cs" />
|
||||
<Compile Include="Infrastructure\SoftwareVersion.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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user