Skip to content

Commit

Permalink
feat: Try parse and length check.
Browse files Browse the repository at this point in the history
Added a length check as first test on number (larger than 13 lower than 10).
Added TryParse static method.

Signed-off-by: Johannes Tegnér <[email protected]>
  • Loading branch information
Johannestegner committed Mar 9, 2023
1 parent 50f6e72 commit 687c809
Showing 1 changed file with 12 additions and 0 deletions.
12 changes: 12 additions & 0 deletions Organisationsnummer/Organisationsnummer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,12 @@ private static bool LuhnCheck(string value)
/// <exception cref="OrganisationsnummerException">Thrown on parse error.</exception>
public static Organisationsnummer Parse(string number) => new(number);

/// <summary>
/// Try parse a string to an organisationsnummer.
/// </summary>
/// <param name="number">Number to try parse.</param>
/// <param name="result">Resulting object.</param>
/// <returns>True on success else false.</returns>
public static bool TryParse(string number, out Organisationsnummer? result)
{
try
Expand Down Expand Up @@ -145,6 +151,12 @@ public string Format(bool separator = true)

private void InnerParse(string input)
{
if (input.Length is > 13 or < 10)
{
var state = input.Length > 13 ? "long" : "short";
throw new OrganisationsnummerException($"Input value too ${state}");
}

try
{
var matches = regex.Matches(input);
Expand Down

0 comments on commit 687c809

Please sign in to comment.