public static bool OnAddressSetEvent(string text, ref string card, GenericBase cardDriver) { var keepText = false; if (text.IsNotEmpty()) { try { int address; if ((text.StartsWith("x", StringComparison.InvariantCultureIgnoreCase)) || (text.StartsWith("0x", StringComparison.InvariantCultureIgnoreCase))) { var parseString = text.Substring(text.IndexOf("x", StringComparison.InvariantCultureIgnoreCase) + 1); address = int.Parse(parseString, NumberStyles.HexNumber); } else { address = Convert.ToInt32(text); } if (!AquaPicBus.SlaveAddressOk(address)) { MessageBox.Show("Address already exists"); } else { var ja = SettingsHelper.OpenSettingsFile("hardware") as JArray; card = string.Format( "{0}{1}", cardDriver.GetCardAcyronym(), cardDriver.GetLowestCardNameIndex()); cardDriver.AddCard(card, address); var type = cardDriver.GetCardType().ToString(); type = Char.ToLower(type[0]) + type.Substring(1); var jo = new JObject { new JProperty("type", type), new JProperty("address", string.Format("0x{0:X}", address)), new JProperty("name", card), new JProperty("options", string.Empty) }; ja.Add(jo); SettingsHelper.WriteSettingsFile("hardware", ja); keepText = true; } } catch (Exception ex) { MessageBox.Show("Improper address"); Console.WriteLine(ex); } } return(keepText); }