From 5088ba30ef090a2fdcb44d9a67d2aa363972d207 Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Fri, 23 Dec 2022 01:16:51 +0000 Subject: [PATCH] --- server/DataList/SubscriptionServerDataList.cs | 187 ++++++++++++++++++ server/models/SubscriptionServer.cs | 2 +- server/util/AySchema.cs | 8 +- 3 files changed, 190 insertions(+), 7 deletions(-) create mode 100644 server/DataList/SubscriptionServerDataList.cs diff --git a/server/DataList/SubscriptionServerDataList.cs b/server/DataList/SubscriptionServerDataList.cs new file mode 100644 index 0000000..d4c83af --- /dev/null +++ b/server/DataList/SubscriptionServerDataList.cs @@ -0,0 +1,187 @@ +using System.Collections.Generic; +using System.Linq; +using Sockeye.Biz; +using Sockeye.Models; + +namespace Sockeye.DataList +{ + internal class SubscriptionServerDataList : DataListProcessingBase + { + public SubscriptionServerDataList(long translationId) + { + DefaultListAType = SockType.SubscriptionServer; + SQLFrom = @"FROM asubscriptionserver LEFT JOIN acustomer ON (asubscriptionserver.customerid = acustomer.id)"; + + var RoleSet = BizRoles.GetRoleSet(DefaultListAType); + AllowedRoles = RoleSet.ReadFullRecord | RoleSet.Change; + DefaultColumns = new List() { "SubServerSubExpire", "SubServerName", "Customer", "SubServerTrial", "SubServerDatacenter", "Active" }; + DefaultSortBy = new Dictionary() { { "SubServerSubExpire", "+" } }; + FieldDefinitions = new List(); + /* + await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'SubscriptionServer', 'Subscription server' FROM atranslation t where t.baselanguage = 'en'"); + await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'SubscriptionServerList', 'Subscription servers' FROM atranslation t where t.baselanguage = 'en'"); + await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'SubServerName', 'Name' FROM atranslation t where t.baselanguage = 'en'"); + await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'SubServerNotes', 'Notes' FROM atranslation t where t.baselanguage = 'en'"); + await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'SubServerDatacenter', 'Data center' FROM atranslation t where t.baselanguage = 'en'"); + await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'SubServerTimeZone', 'Time zone' FROM atranslation t where t.baselanguage = 'en'"); + await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'SubServerLastUpdated', 'Last updated' FROM atranslation t where t.baselanguage = 'en'"); + await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'SubServerSubExpire', 'Subscription expires' FROM atranslation t where t.baselanguage = 'en'"); + await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'SubServerTrialContact', 'Trial contact' FROM atranslation t where t.baselanguage = 'en'"); + await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'SubServerTrialEmail', 'TrialEmail' FROM atranslation t where t.baselanguage = 'en'"); + await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'SubServerTrial', 'Trial' FROM atranslation t where t.baselanguage = 'en'"); + await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'SubServerTrialCompany', 'Trial company' FROM atranslation t where t.baselanguage = 'en'"); + await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'SubServerOperatingSystem', 'OS' FROM atranslation t where t.baselanguage = 'en'"); + await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'SubServerCustomerDomain', 'Customer subdomain' FROM atranslation t where t.baselanguage = 'en'"); +"CREATE TABLE asubscriptionserver (id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, active BOOL NOT NULL DEFAULT true, created TIMESTAMPTZ NOT NULL, " ++ "name TEXT NOT NULL, notes TEXT, datacenter TEXT NOT NULL, timezone TEXT NOT NULL, dbid TEXT, lastupdated TIMESTAMPTZ, subscriptionexpire TIMESTAMPTZ NOT NULL, " ++ "trial BOOL NOT NULL DEFAULT true, trialcontact TEXT, trialemail TEXT, trialcompany TEXT, operatingsystem TEXT, customersubdomain TEXT, " ++ "wiki TEXT, tags VARCHAR(255) ARRAY, customerid BIGINT REFERENCES acustomer(id) )" + */ + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "SubServerName", + FieldKey = "SubServerName", + SockType = (int)SockType.SubscriptionServer, + UiFieldDataType = (int)UiFieldDataType.Text, + SqlIdColumnName = "asubscriptionserver.id", + SqlValueColumnName = "asubscriptionserver.name", + IsRowId = true + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "Active", + FieldKey = "Active", + UiFieldDataType = (int)UiFieldDataType.Bool, + SqlValueColumnName = "asubscriptionserver.active" + }); + + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "Created", + FieldKey = "Created", + UiFieldDataType = (int)UiFieldDataType.DateTime, + SqlValueColumnName = "asubscriptionserver.created" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "SubServerNotes", + FieldKey = "SubServerNotes", + UiFieldDataType = (int)UiFieldDataType.Text, + SqlValueColumnName = "asubscriptionserver.notes" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "SubServerDatacenter", + FieldKey = "SubServerDatacenter", + UiFieldDataType = (int)UiFieldDataType.Text, + SqlValueColumnName = "asubscriptionserver.datacenter" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "SubServerTimeZone", + FieldKey = "SubServerTimeZone", + UiFieldDataType = (int)UiFieldDataType.Text, + SqlValueColumnName = "asubscriptionserver.timezone" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "DatabaseID", + FieldKey = "DatabaseID", + UiFieldDataType = (int)UiFieldDataType.Text, + SqlValueColumnName = "asubscriptionserver.dbid" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "SubServerLastUpdated", + FieldKey = "SubServerLastUpdated", + UiFieldDataType = (int)UiFieldDataType.DateTime, + SqlValueColumnName = "asubscriptionserver.lastupdated" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "SubServerSubExpire", + FieldKey = "SubServerSubExpire", + UiFieldDataType = (int)UiFieldDataType.DateTime, + SqlValueColumnName = "asubscriptionserver.subscriptionexpire" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "SubServerTrial", + FieldKey = "SubServerTrial", + UiFieldDataType = (int)UiFieldDataType.Bool, + SqlValueColumnName = "asubscriptionserver.trial" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "SubServerTrialContact", + FieldKey = "SubServerTrialContact", + UiFieldDataType = (int)UiFieldDataType.Text, + SqlValueColumnName = "asubscriptionserver.trialcontact" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "SubServerTrialEmail", + FieldKey = "SubServerTrialEmail", + UiFieldDataType = (int)UiFieldDataType.EmailAddress, + SqlValueColumnName = "asubscriptionserver.trialemail" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "SubServerTrialCompany", + FieldKey = "SubServerTrialCompany", + UiFieldDataType = (int)UiFieldDataType.Text, + SqlValueColumnName = "asubscriptionserver.trialcompany" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "SubServerOperatingSystem", + FieldKey = "SubServerOperatingSystem", + UiFieldDataType = (int)UiFieldDataType.Text, + SqlValueColumnName = "asubscriptionserver.operatingsystem" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "SubServerCustomerDomain", + FieldKey = "SubServerCustomerDomain", + UiFieldDataType = (int)UiFieldDataType.Text, + SqlValueColumnName = "asubscriptionserver.customersubdomain" + }); + + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "Customer", + FieldKey = "Customer", + SockType = (int)SockType.Customer, + UiFieldDataType = (int)UiFieldDataType.Text, + SqlIdColumnName = "asubscriptionserver.customerid", + SqlValueColumnName = "acustomer.name" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "Tags", + FieldKey = "subscriptionservertags", + UiFieldDataType = (int)UiFieldDataType.Tags, + SqlValueColumnName = "asubscriptionserver.tags" + }); + + } + + }//eoc +}//eons \ No newline at end of file diff --git a/server/models/SubscriptionServer.cs b/server/models/SubscriptionServer.cs index 9c0a798..91c2736 100644 --- a/server/models/SubscriptionServer.cs +++ b/server/models/SubscriptionServer.cs @@ -21,10 +21,10 @@ namespace Sockeye.Models public string DataCenter { get; set; } [Required] public string TimeZone { get; set; } + public string DbId { get; set; } public DateTime? LastUpdated { get; set; } public DateTime SubscriptionExpire { get; set; } public bool Trial { get; set; } - public DateTime? TrialExpire { get; set; } public string TrialContact { get; set; } public string TrialEmail { get; set; } public string TrialCompany { get; set; } diff --git a/server/util/AySchema.cs b/server/util/AySchema.cs index ecbf186..1189518 100644 --- a/server/util/AySchema.cs +++ b/server/util/AySchema.cs @@ -887,8 +887,8 @@ $BODY$ LANGUAGE PLPGSQL STABLE"); await ExecQueryAsync("CREATE TABLE asubscriptionserver (id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, active BOOL NOT NULL DEFAULT true, created TIMESTAMPTZ NOT NULL, " - + "name TEXT NOT NULL, notes TEXT, datacenter TEXT NOT NULL, timezone TEXT NOT NULL, lastupdated TIMESTAMPTZ, subscriptionexpire TIMESTAMPTZ NOT NULL, " - + "trial BOOL NOT NULL DEFAULT true, trialexpire TIMESTAMPTZ, trialcontact TEXT, trialemail TEXT, trialcompany TEXT, operatingsystem TEXT, customersubdomain TEXT, " + + "name TEXT NOT NULL, notes TEXT, datacenter TEXT NOT NULL, timezone TEXT NOT NULL, dbid TEXT, lastupdated TIMESTAMPTZ, subscriptionexpire TIMESTAMPTZ NOT NULL, " + + "trial BOOL NOT NULL DEFAULT true, trialcontact TEXT, trialemail TEXT, trialcompany TEXT, operatingsystem TEXT, customersubdomain TEXT, " + "wiki TEXT, tags VARCHAR(255) ARRAY, customerid BIGINT REFERENCES acustomer(id) )"); @@ -1027,7 +1027,6 @@ $BODY$ LANGUAGE PLPGSQL STABLE"); await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'SubServerTimeZone', 'Time zone' FROM atranslation t where t.baselanguage = 'en'"); await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'SubServerLastUpdated', 'Last updated' FROM atranslation t where t.baselanguage = 'en'"); await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'SubServerSubExpire', 'Subscription expires' FROM atranslation t where t.baselanguage = 'en'"); - await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'SubServerTrialExpire', 'Trial expires' FROM atranslation t where t.baselanguage = 'en'"); await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'SubServerTrialContact', 'Trial contact' FROM atranslation t where t.baselanguage = 'en'"); await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'SubServerTrialEmail', 'TrialEmail' FROM atranslation t where t.baselanguage = 'en'"); await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'SubServerTrial', 'Trial' FROM atranslation t where t.baselanguage = 'en'"); @@ -1044,7 +1043,6 @@ $BODY$ LANGUAGE PLPGSQL STABLE"); await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'SubServerTimeZone', 'Time zone' FROM atranslation t where t.baselanguage = 'es'"); await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'SubServerLastUpdated', 'Last updated' FROM atranslation t where t.baselanguage = 'es'"); await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'SubServerSubExpire', 'Subscription expires' FROM atranslation t where t.baselanguage = 'es'"); - await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'SubServerTrialExpire', 'Trial expires' FROM atranslation t where t.baselanguage = 'es'"); await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'SubServerTrialContact', 'Trial contact' FROM atranslation t where t.baselanguage = 'es'"); await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'SubServerTrialEmail', 'TrialEmail' FROM atranslation t where t.baselanguage = 'es'"); await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'SubServerTrial', 'Trial' FROM atranslation t where t.baselanguage = 'es'"); @@ -1061,7 +1059,6 @@ $BODY$ LANGUAGE PLPGSQL STABLE"); await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'SubServerTimeZone', 'Time zone' FROM atranslation t where t.baselanguage = 'fr'"); await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'SubServerLastUpdated', 'Last updated' FROM atranslation t where t.baselanguage = 'fr'"); await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'SubServerSubExpire', 'Subscription expires' FROM atranslation t where t.baselanguage = 'fr'"); - await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'SubServerTrialExpire', 'Trial expires' FROM atranslation t where t.baselanguage = 'fr'"); await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'SubServerTrialContact', 'Trial contact' FROM atranslation t where t.baselanguage = 'fr'"); await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'SubServerTrialEmail', 'TrialEmail' FROM atranslation t where t.baselanguage = 'fr'"); await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'SubServerTrial', 'Trial' FROM atranslation t where t.baselanguage = 'fr'"); @@ -1078,7 +1075,6 @@ $BODY$ LANGUAGE PLPGSQL STABLE"); await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'SubServerTimeZone', 'Time zone' FROM atranslation t where t.baselanguage = 'de'"); await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'SubServerLastUpdated', 'Last updated' FROM atranslation t where t.baselanguage = 'de'"); await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'SubServerSubExpire', 'Subscription expires' FROM atranslation t where t.baselanguage = 'de'"); - await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'SubServerTrialExpire', 'Trial expires' FROM atranslation t where t.baselanguage = 'de'"); await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'SubServerTrialContact', 'Trial contact' FROM atranslation t where t.baselanguage = 'de'"); await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'SubServerTrialEmail', 'TrialEmail' FROM atranslation t where t.baselanguage = 'de'"); await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'SubServerTrial', 'Trial' FROM atranslation t where t.baselanguage = 'de'");