/// <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); } } }
/// <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); }