Files
CliFx/CliFx.Demo/Domain/Isbn.cs
2023-08-22 21:20:04 +03:00

32 lines
841 B
C#

using System;
namespace CliFx.Demo.Domain;
public partial record Isbn(
int EanPrefix,
int RegistrationGroup,
int Registrant,
int Publication,
int CheckDigit
)
{
public override string ToString() =>
$"{EanPrefix:000}-{RegistrationGroup:00}-{Registrant:00000}-{Publication:00}-{CheckDigit:0}";
}
public partial record Isbn
{
public static Isbn Parse(string value, IFormatProvider formatProvider)
{
var components = value.Split('-', 5, StringSplitOptions.RemoveEmptyEntries);
return new Isbn(
int.Parse(components[0], formatProvider),
int.Parse(components[1], formatProvider),
int.Parse(components[2], formatProvider),
int.Parse(components[3], formatProvider),
int.Parse(components[4], formatProvider)
);
}
}