From 8f6e9cdc42c52cc07b6b8fc6f8c38b7da25a6f44 Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Thu, 14 May 2020 15:18:45 +0000 Subject: [PATCH] --- devdocs/todo.txt | 1 + server/AyaNova/biz/AyaEvent.cs | 3 ++- server/AyaNova/biz/WidgetBiz.cs | 31 ++++++++++++++++++++++-------- server/AyaNova/models/AyContext.cs | 17 +++++++++++----- server/AyaNova/resource/de.json | 1 + server/AyaNova/resource/en.json | 1 + server/AyaNova/resource/es.json | 1 + server/AyaNova/resource/fr.json | 1 + 8 files changed, 42 insertions(+), 14 deletions(-) diff --git a/devdocs/todo.txt b/devdocs/todo.txt index 11b37e12..4c47e9c7 100644 --- a/devdocs/todo.txt +++ b/devdocs/todo.txt @@ -37,6 +37,7 @@ todo: api / server landing page is shitty on a mobile todo: Should server show uptime somewhere? todo: Log configuration into server log at startup? https://rockfish.ayanova.com/default.htm#!/rfcaseEdit/3523 log all config settings into server log on boot +todo:aycontext clean up old block of weird definitions todo: Is there a log that records past jobs, how long can they be viewed? todo: Rename the link to AyaNova App on the server page to just "AyaNova" todo: translation cjkindex, no way to set this value currently diff --git a/server/AyaNova/biz/AyaEvent.cs b/server/AyaNova/biz/AyaEvent.cs index edf2ae39..39a1c517 100644 --- a/server/AyaNova/biz/AyaEvent.cs +++ b/server/AyaNova/biz/AyaEvent.cs @@ -24,7 +24,8 @@ namespace AyaNova.Biz ServerStateChange=9, SeedDatabase=10, AttachmentModified=11, - EraseAllData=12 + EraseAllData=12, + ResetSerial=13 //NEW ITEMS REQUIRE translation KEYS and update CLIENT ay-history.vue code in eventypes list and translation fetcher diff --git a/server/AyaNova/biz/WidgetBiz.cs b/server/AyaNova/biz/WidgetBiz.cs index 5c3a3874..e7ddd678 100644 --- a/server/AyaNova/biz/WidgetBiz.cs +++ b/server/AyaNova/biz/WidgetBiz.cs @@ -43,7 +43,7 @@ namespace AyaNova.Biz return null; else { - // newObject.Serial = ServerBootConfig.WIDGET_SERIAL.GetNext(); + // newObject.Serial = ServerBootConfig.WIDGET_SERIAL.GetNext(); newObject.Tags = TagUtil.NormalizeTags(newObject.Tags); newObject.CustomFields = JsonUtil.CompactJson(newObject.CustomFields); await ct.Widget.AddAsync(newObject); @@ -98,7 +98,7 @@ namespace AyaNova.Biz await EventLogProcessor.LogEventToDatabaseAsync(new Event(UserId, id, BizType, AyaEvent.Retrieved), ct); return ret; } - + //////////////////////////////////////////////////////////////////////////////////////////////// //UPDATE // @@ -172,16 +172,31 @@ namespace AyaNova.Biz - //////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////////////////// //RESET SERIAL // internal async Task ResetSerial(long newSerial) { - - await ct.SaveChangesAsync(); - - await EventLogProcessor.LogEventToDatabaseAsync(new Event(UserId, newObject.Id, BizType, AyaEvent.ResetSerial,newSerial.ToString()), ct); - + + /* + ALTER TABLE table_name +ALTER COLUMN column_name +{ SET GENERATED { ALWAYS| BY DEFAULT } | + SET sequence_option | RESTART [ [ WITH ] restart ] } + */ + + + using (var command = ct.Database.GetDbConnection().CreateCommand()) + { + command.CommandText = $"alter table awidget alter column serial restart with {newSerial}"; + await ct.Database.OpenConnectionAsync(); + await command.ExecuteNonQueryAsync(); + await ct.Database.CloseConnectionAsync(); + } + + + await EventLogProcessor.LogEventToDatabaseAsync(new Event(UserId, 0, BizType, AyaEvent.ResetSerial, newSerial.ToString()), ct); + return true; } diff --git a/server/AyaNova/models/AyContext.cs b/server/AyaNova/models/AyContext.cs index b498418d..a5149871 100644 --- a/server/AyaNova/models/AyContext.cs +++ b/server/AyaNova/models/AyContext.cs @@ -115,6 +115,16 @@ namespace AyaNova.Models } } + /////////////////////////////// + //SERIALIZED OBJECTS + // + modelBuilder.Entity().Property(z => z.Serial).UseIdentityByDefaultColumn(); + + + + /////////////////////////////////////////////////////////////////////// + //TODO: this entire block is almost certainly wrong or not required + //Indexes must be specified through fluent api unfortunately modelBuilder.Entity().HasIndex(p => p.StoredFileName); @@ -136,14 +146,11 @@ namespace AyaNova.Models .WithOne(i => i.User) .HasForeignKey(b => b.UserId) .OnDelete(DeleteBehavior.NoAction); + ////////////////////////////////////////////////////////////// + - modelBuilder.Entity().Property(z => z.Serial).UseIdentityByDefaultColumn(); - // //Workorder - // modelBuilder.Entity() - // .HasOne(p => p.WorkOrder) - // .WithMany(b => b.WorkorderItems); //----------- diff --git a/server/AyaNova/resource/de.json b/server/AyaNova/resource/de.json index ed2ab13b..ff537d32 100644 --- a/server/AyaNova/resource/de.json +++ b/server/AyaNova/resource/de.json @@ -1646,6 +1646,7 @@ "EventLicenseTrialRequest": "Testlizenz angefordert", "EventServerStateChange": "Serverstatus geändert", "EventSeedDatabase": "Datenbank mit Beispieldaten erstellt", + "EventResetSerial":"Seriennummer zurückgesetzt", "NoType": "Kein Typ", "License": "Lizenz", "LogFile": "Logdatei", diff --git a/server/AyaNova/resource/en.json b/server/AyaNova/resource/en.json index 5bc2b57e..318ab9d5 100644 --- a/server/AyaNova/resource/en.json +++ b/server/AyaNova/resource/en.json @@ -1646,6 +1646,7 @@ "EventLicenseTrialRequest": "Trial license requested", "EventServerStateChange": "Server state changed", "EventSeedDatabase": "Database seeded with trial data", + "EventResetSerial":"Serial number reset", "NoType": "No type", "License": "License", "LogFile": "Log file", diff --git a/server/AyaNova/resource/es.json b/server/AyaNova/resource/es.json index 0251c5c7..658c6051 100644 --- a/server/AyaNova/resource/es.json +++ b/server/AyaNova/resource/es.json @@ -1646,6 +1646,7 @@ "EventLicenseTrialRequest": "Licencia de prueba solicitada", "EventServerStateChange": "Estado del servidor cambiado", "EventSeedDatabase": "Base de datos creada con datos de muestra", + "EventResetSerial":"Restablecimiento de número de serie", "NoType": "Sin tipo", "License": "Licencia", "LogFile": "Archivo de registro", diff --git a/server/AyaNova/resource/fr.json b/server/AyaNova/resource/fr.json index 43ff7c20..5bcbe92b 100644 --- a/server/AyaNova/resource/fr.json +++ b/server/AyaNova/resource/fr.json @@ -1646,6 +1646,7 @@ "EventLicenseTrialRequest": "Licence d'essai demandée", "EventServerStateChange": "L'état du serveur a changé", "EventSeedDatabase": "Base de données créée avec des exemples de données", + "EventResetSerial":"Réinitialisation du numéro de série", "NoType": "Aucun type", "License": "Licence", "LogFile": "Fichier journal",