Example #1
0
        /// <summary>
        /// Check the input to determine if it is a job number.
        /// </summary>
        /// <param name="Input">String to check.</param>
        /// <param name="Format">The format you wish to output in <paramref name="FormatNumber"/>.</param>
        /// <param name="FormatNumber">The formatted string if it can be transformed.</param>
        /// <returns>True if a job number format, false if not.</returns>
        public static bool TryParse(string Input, out string FormatNumber, JobNumberFormats Format)
        {
            if (string.IsNullOrEmpty(Input))
            {
                FormatNumber = null;
                return(false);
            }

            //If the input string is not a correctly formatted number, return false
            if (
                !Regex.IsMatch(Input, Formats.ShortHyphan) &&
                !Regex.IsMatch(Input, Formats.ShortNoHyphan) &&
                !Regex.IsMatch(Input, Formats.LongHyphan) &&
                !Regex.IsMatch(Input, Formats.LongNoHyphan)
                )
            {
                FormatNumber = null;
                return(false);
            }

            //make the string a long no hyphan format by default to easily format into
            string formatted = Input.Replace("-", "");

            if (formatted.Length != 9)
            {
                formatted = formatted.Insert(0, "20");
            }

            //Format number and output.
            switch (Format)
            {
            case JobNumberFormats.ShortHyphan:
            {
                FormatNumber = formatted.Remove(0, 2).Insert(2, "-").Insert(5, "-");
                return(true);
            }

            case JobNumberFormats.LongNoHyphan:
            {
                FormatNumber = formatted;
                return(true);
            }

            case JobNumberFormats.LongHyphan:
            {
                FormatNumber = formatted.Insert(4, "-").Insert(7, "-");
                return(true);
            }

            case JobNumberFormats.ShortNoHyphan:
            {
                FormatNumber = formatted.Remove(0, 2);
                return(true);
            }

            default:
            {
                FormatNumber = null;
                return(false);
            }
            }
        }
Example #2
0
 /// <summary>
 /// Parse number to another format.
 /// </summary>
 /// <param name="Input">Source job number.</param>
 /// <param name="Format">New format.</param>
 /// <returns>Reformatted job number.</returns>
 public static string Parse(string Input, JobNumberFormats Format)
 {
     if (TryParse(Input, out string reformatted, Format))
     {
         return(reformatted);
     }