Exemple #1
0
        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);
        }