From 5226fdb44e51f001378da0487bd8a293981e98ef Mon Sep 17 00:00:00 2001 From: aj Date: Mon, 23 Oct 2017 20:48:51 -0400 Subject: [PATCH] Fix reading press brake programs when value is null. --- CincyLib/PressBrake/Program.cs | 40 ++++++++++++++++++++++++++++------ 1 file changed, 33 insertions(+), 7 deletions(-) diff --git a/CincyLib/PressBrake/Program.cs b/CincyLib/PressBrake/Program.cs index 4d3af72..597f3ce 100644 --- a/CincyLib/PressBrake/Program.cs +++ b/CincyLib/PressBrake/Program.cs @@ -95,13 +95,39 @@ namespace CincyLib.PressBrake var xml = XDocument.Load(stream); var data = xml.Root.Element("PressBrakeProgram"); - Program.Version = int.Parse(data.Attribute("Version").Value); - Program.MatThick = double.Parse(data.Attribute("MatThick").Value); - Program.KFactor = double.Parse(data.Attribute("KFactor").Value); - Program.TeachName = data.Attribute("TeachName").Value; - Program.PartName = data.Attribute("PartName").Value; - Program.SetupNotes = data.Attribute("SetupNotes").Value; - Program.ProgNotes = data.Attribute("ProgNotes").Value; + + var version = data.Attribute("Version")?.Value; + var matthick = data.Attribute("MatThick")?.Value; + var kfactor = data.Attribute("KFactor")?.Value; + + if (version != null) + { + int v; + + if (int.TryParse(version, out v)) + Program.Version = v; + } + + if (matthick != null) + { + double t; + + if (double.TryParse(matthick, out t)) + Program.MatThick = t; + } + + if (kfactor != null) + { + double k; + + if (double.TryParse(kfactor, out k)) + Program.KFactor = k; + } + + Program.TeachName = data.Attribute("TeachName")?.Value; + Program.PartName = data.Attribute("PartName")?.Value; + Program.SetupNotes = data.Attribute("SetupNotes")?.Value; + Program.ProgNotes = data.Attribute("ProgNotes")?.Value; var RZEnabled = int.Parse(data.Attribute("RZEnabled").Value); Program.RZEnabled = Convert.ToBoolean(RZEnabled);