From 28008a746a31abb7909dd86cb0cd413ac8943b0b Mon Sep 17 00:00:00 2001 From: jmpoep Date: Thu, 7 Dec 2023 16:51:07 +0800 Subject: first commit --- utils/ipn_sqlclr/VmpLicenseKey.cs | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 utils/ipn_sqlclr/VmpLicenseKey.cs (limited to 'utils/ipn_sqlclr/VmpLicenseKey.cs') diff --git a/utils/ipn_sqlclr/VmpLicenseKey.cs b/utils/ipn_sqlclr/VmpLicenseKey.cs new file mode 100644 index 0000000..2b0ec8a --- /dev/null +++ b/utils/ipn_sqlclr/VmpLicenseKey.cs @@ -0,0 +1,36 @@ +using System; +using System.Collections; +using System.Data.SqlTypes; +using Microsoft.SqlServer.Server; + +namespace ipn_sqlclr +{ + public partial class UserDefinedFunctions + { + [SqlFunction] + public static SqlString VmpLicenseKeyGenerateNew(SqlInt32 productId, SqlString customerName, SqlString eMail, SqlDateTime maxBuildDt) + { + return new SqlString (Keygen.GenerateKey(productId.Value, customerName.Value, eMail.Value, maxBuildDt.Value)); + } + + [SqlFunction(FillRowMethodName = "FillRowVmpLicenseParseKey", + TableDefinition = "[productId] int,[customerName] nvarchar(max),[eMail] nvarchar(max),maxBuildDT datetime")] + public static IEnumerable VmpLicenseParseKey(String key) + { + yield return key; + } + + public static void FillRowVmpLicenseParseKey(Object obj, out SqlInt32 productId, out SqlString customerName, out SqlString eMail, out SqlDateTime maxBuildDt) + { + var key = (string)obj; + int productIdTmp; + string customerNameTmp, eMailTmp; + DateTime maxBuildDtTmp; + Keygen.ParseKey(key, out productIdTmp, out customerNameTmp, out eMailTmp, out maxBuildDtTmp); + productId = productIdTmp; + customerName = customerNameTmp; + eMail = eMailTmp; + maxBuildDt = maxBuildDtTmp; + } + } +} -- cgit v1.2.3