From 6a9843a8519e8e5ee6bfb301ef96ed10757e2582 Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Thu, 29 Dec 2022 23:08:09 +0000 Subject: [PATCH] --- .vscode/launch.json | 2 +- server/DataList/LicenseDataList.cs | 1 + server/biz/GlobalBizSettingsBiz.cs | 66 ++++++++++++++++++++++++++-- server/biz/TrialRequestStatus.cs | 2 +- server/models/TrialLicenseRequest.cs | 4 +- todo.txt | 6 ++- 6 files changed, 71 insertions(+), 10 deletions(-) diff --git a/.vscode/launch.json b/.vscode/launch.json index b4e9329..3300e7e 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -35,7 +35,7 @@ "SOCKEYE_DB_CONNECTION": "Server=localhost;Username=postgres;Password=sockeye;Database=sockeye;CommandTimeout=300;", "SOCKEYE_DATA_PATH": "c:\\temp\\sockeye", "SOCKEYE_USE_URLS": "http://*:7676;", - //"SOCKEYE_PERMANENTLY_ERASE_DATABASE":"true", + "SOCKEYE_PERMANENTLY_ERASE_DATABASE":"true", //"SOCKEYE_REMOVE_LICENSE_FROM_DB":"true", //"SOCKEYE_REPORT_RENDERING_TIMEOUT":"1", "SOCKEYE_BACKUP_PG_DUMP_PATH": "C:\\data\\code\\postgres_14\\bin" diff --git a/server/DataList/LicenseDataList.cs b/server/DataList/LicenseDataList.cs index 59bcc47..eca6ccd 100644 --- a/server/DataList/LicenseDataList.cs +++ b/server/DataList/LicenseDataList.cs @@ -57,6 +57,7 @@ namespace Sockeye.DataList FieldKey = "licensecreated", SockType = (int)SockType.License, UiFieldDataType = (int)UiFieldDataType.DateTime, + SqlIdColumnName = "alicense.id", SqlValueColumnName = "alicense.created", IsRowId = true }); diff --git a/server/biz/GlobalBizSettingsBiz.cs b/server/biz/GlobalBizSettingsBiz.cs index 33ec82e..24b8653 100644 --- a/server/biz/GlobalBizSettingsBiz.cs +++ b/server/biz/GlobalBizSettingsBiz.cs @@ -300,7 +300,7 @@ namespace Sockeye.Biz #endregion customers #region CASES - /* + log.LogInformation("RFImport Cases"); //case projects to be tags List CaseProjectList = new List(); @@ -401,13 +401,11 @@ namespace Sockeye.Biz await ct.Database.CloseConnectionAsync(); } } - */ - #endregion cases + #endregion cases #region LICENSES log.LogInformation("RFImport Licenses"); - { res = await client.GetAsync($"{URL_ROCKFISH}api/license/list"); @@ -564,6 +562,66 @@ namespace Sockeye.Biz #endregion licenses + //============================================TRIAL REQUESTS START ========================================= + + #region TRIAL LICENSE REQUESTS + log.LogInformation("RFImport Raven trial requests"); + { + + res = await client.GetAsync($"{URL_ROCKFISH}api/trial/list"); + responseText = await res.Content.ReadAsStringAsync(); + var jaTrialRequestList = JArray.Parse(responseText); + + foreach (JObject jTrialRequestItem in jaTrialRequestList) + { + /* + /api/trial/list + [ + { + "id": 296, + "dbId": "R6U37uNUN2hSQideG6Gg+MqoQY8vuUeyHFI6Kv7VDsE=", + "perpetual": true, + "companyName": "PDI Technologies", + "contactName": "Jason Berkel", + "notes": null, + "email": "jberkel@pdisoftware.com", + "emailConfirmCode": "296RuWFbzuEps", + "emailValidated": true, + "dtRequested": 1672257483, + "dtProcessed": 1672257587, + "status": 1, + "rejectReason": null, + "key": "[KEY\n{\n \"Key\": {\n \"LicenseFormat\": \"8\",\n \"Id\": \"1672257587\",\n \"RegisteredTo\": \"PDI Technologies\",\n \"DBID\": \"R6U37uNUN2hSQideG6Gg+MqoQY8vuUeyHFI6Kv7VDsE=\",\n \"Perpetual\": true,\n \"LicenseExpiration\": \"2023-01-04T19:59:47.6170429Z\",\n \"MaintenanceExpiration\": \"2023-01-04T19:59:47.6170429Z\",\n \"Features\": [\n {\n \"Name\": \"TrialMode\"\n },\n {\n \"Name\": \"ActiveInternalUsers\",\n \"Count\": 5000\n }\n ]\n }\n}\nKEY]\n[SIGNATURE\ng/9yvrUi18PsllDyc4SJSlngmW3n411OtlFaGl3nK5SznCMf7CFDxH6eRqrvpI4452RblqAquHmsUUwFHIzKjaIj1VF3z1X9RHz7BcPrNX7lvWM8ErJb0jJjylKxvecaalMPXVxR1QLULDBFdVT5Gv0QUIzkFKVSwAF2mLUg1JNut939YoG2u95ABeQNe4SH7WQ3+gcsI/qSLcbzz/PmRMrWqPOzXi7jVbZTigfZLdbSC+DlUbNsCvkSgraEwBBnCpE8ZfCG1oFjdbP64qF1ArY7DbPUuxHNfPSZcDlhQz8D7JIqLTQwEijqvKfLy/KNMSlcfQtv5VBJtlwCP9ggdQ==\nSIGNATURE]\n", + "dtFetched": 1672257635 + }, + */ + var l = new TrialLicenseRequest(); + l.DbId = jTrialRequestItem["dbId"].Value(); + l.Perpetual = jTrialRequestItem["perpetual"].Value(); + l.CompanyName = jTrialRequestItem["companyName"].Value(); + l.ContactName = jTrialRequestItem["contactName"].Value(); + l.Email = jTrialRequestItem["email"].Value(); + l.EmailConfirmCode = jTrialRequestItem["emailConfirmCode"].Value(); + l.EmailValidated = jTrialRequestItem["emailValidated"].Value(); + l.Requested = (DateTime)DateUtil.EpochToDateNullIsNull(jTrialRequestItem["dtRequested"].Value()); + l.Processed = DateUtil.EpochToDateNullIsNull(jTrialRequestItem["dtProcessed"].Value()); + l.FetchedOn = DateUtil.EpochToDateNullIsNull(jTrialRequestItem["dtfetched"].Value()); + l.Status = jTrialRequestItem["status"].Value(); + l.RejectReason = jTrialRequestItem["rejectReason"].Value(); + l.Key = jTrialRequestItem["key"].Value(); + + var biz = TrialLicenseRequestBiz.GetBiz(ct); + await biz.CreateAsync(l); + + }// all trial requests loop + + + } + #endregion trial requests + + + + } catch (Exception ex) { diff --git a/server/biz/TrialRequestStatus.cs b/server/biz/TrialRequestStatus.cs index aa16a33..cacf112 100644 --- a/server/biz/TrialRequestStatus.cs +++ b/server/biz/TrialRequestStatus.cs @@ -2,7 +2,7 @@ namespace Sockeye.Biz { public enum TrialRequestStatus { - NotSet = 0, + New = 0, Approved = 1, Rejected = 2 } diff --git a/server/models/TrialLicenseRequest.cs b/server/models/TrialLicenseRequest.cs index 021d30c..ae41680 100644 --- a/server/models/TrialLicenseRequest.cs +++ b/server/models/TrialLicenseRequest.cs @@ -22,10 +22,10 @@ namespace Sockeye.Models public bool EmailValidated { get; set; } = false; public DateTime Requested { get; set; } public DateTime? Processed { get; set; } - public TrialRequestStatus Status { get; set; } = TrialRequestStatus.NotSet; + public TrialRequestStatus Status { get; set; } = TrialRequestStatus.New; public string RejectReason { get; set; } public string Key { get; set; } - public DateTime FetchedOn { get; set; } + public DateTime? FetchedOn { get; set; } public bool Perpetual { get; set; } = false; diff --git a/todo.txt b/todo.txt index e87e7a4..d668c7b 100644 --- a/todo.txt +++ b/todo.txt @@ -1,12 +1,14 @@ -client - open / edit purchase +client - open / edit all the things import trial requests -import licenses import all vendor data packets from shareit into purchases - direct open a case by case number like workorder (id's differ so it isn't easy to just open a case in the url) +- all the rockfish functionality for generating new licenses ad-hoc but with a server route doing the work so can be automated + + bugs: search: Exception data: