public static bool ValidatePorts(string Ports, ref string reason) { bool? duplicates = false; List <string> ValueList = WpfFunc.SplitAndValidate(Ports, ref duplicates); if (ValueList == null) { if (duplicates == true) { reason = Translate.fmt("err_duplicate_value"); } else { reason = Translate.fmt("err_empty_value"); } return(false); } foreach (string Value in ValueList) { string[] strTemp = Value.Split('-'); if (strTemp.Length == 1) { if (ParsePort(strTemp[0]) == null) { reason = Translate.fmt("err_invallid_port"); return(false); } } else if (strTemp.Length == 2) { int?PortL = ParsePort(strTemp[0]); int?PortR = ParsePort(strTemp[1]); if (PortL == null || PortR == null) { reason = Translate.fmt("err_invallid_port"); return(false); } if (!(PortL.GetValueOrDefault() < PortR.GetValueOrDefault())) { reason = Translate.fmt("err_invalid_range"); return(false); } } else { reason = Translate.fmt("err_invalid_range"); return(false); } } return(true); }