aboutsummaryrefslogtreecommitdiff
path: root/utils/ipn_sqlclr/VmpLicenseKey.cs
diff options
context:
space:
mode:
Diffstat (limited to 'utils/ipn_sqlclr/VmpLicenseKey.cs')
-rw-r--r--utils/ipn_sqlclr/VmpLicenseKey.cs36
1 files changed, 36 insertions, 0 deletions
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;
+ }
+ }
+}