public static LicenseKey ToLicenseKey(this string licenseKeyText)
{
licenseKeyText = Regex.Replace(licenseKeyText, @"\s+", "");
var parts = licenseKeyText.SplitOnFirst('-');
var refId = parts[0];
var base64 = parts[1];
var jsv = Convert.FromBase64String(base64).FromUtf8Bytes();
var hold = JsConfig<DateTime>.DeSerializeFn;
var holdRaw = JsConfig<DateTime>.RawDeserializeFn;
try
{
JsConfig<DateTime>.DeSerializeFn = null;
JsConfig<DateTime>.RawDeserializeFn = null;
var key = jsv.FromJsv<LicenseKey>();
if (key.Ref != refId)
throw new LicenseException("The license '{0}' is not assigned to CustomerId '{1}'.".Fmt(base64)).Trace();
return key;
}
finally
{
JsConfig<DateTime>.DeSerializeFn = hold;
JsConfig<DateTime>.RawDeserializeFn = holdRaw;
}
}