Browse Source

Fixes to bugs

Kenric Nugteren 8 months ago
parent
commit
e056833288
3 changed files with 17 additions and 13 deletions
  1. 1 1
      prs.shared/Grids/EventGrid.cs
  2. 2 2
      prs.stores/Events/Event.cs
  3. 14 10
      prs.stores/Events/SaveEvent.cs

+ 1 - 1
prs.shared/Grids/EventGrid.cs

@@ -133,7 +133,7 @@ public class EventGrid : DynamicDataGrid<Event>
         var type = ev.EventType;
 
         IEventData? data = null;
-        if(ev.Data.Length != 0)
+        if(ev.Data is not null && ev.Data.Length != 0)
         {
             using var stream = new MemoryStream(ev.Data);
             var reader = new CoreBinaryReader(stream, BinarySerializationSettings.Latest);

+ 2 - 2
prs.stores/Events/Event.cs

@@ -314,6 +314,7 @@ public static class EventUtils
 
     public static void ReloadCache(IProvider provider)
     {
+        _loadedCache = true;
         _entityEvents.Clear();
         _entityEventMap.Clear();
         var events = provider.Query(null, Columns.None<Event>().Add(x => x.ID).Add(x => x.Code).Add(x => x.EventType).Add(x => x.Data))
@@ -322,12 +323,11 @@ public static class EventUtils
         {
             AddEvent(provider, ev);
         }
-        _loadedCache = true;
     }
 
     private static void AddEntityEvent(Event ev)
     {
-        if(ev.Data.Length != 0)
+        if(ev.Data is not null && ev.Data.Length != 0)
         {
             using var stream = new MemoryStream(ev.Data);
             var reader = new CoreBinaryReader(stream, BinarySerializationSettings.Latest);

+ 14 - 10
prs.stores/Events/SaveEvent.cs

@@ -1,5 +1,6 @@
 using Comal.Classes;
 using InABox.Core;
+using InABox.Database;
 using InABox.Scripting;
 using System;
 using System.Collections.Generic;
@@ -62,7 +63,7 @@ public class SaveEventDataModelDefinition<T>(SaveEvent<T> ev) : IEventDataModelD
     {
         if(variables is null)
         {
-            var prefix = $"{typeof(T)}.";
+            var prefix = $"{typeof(T).Name}.";
             if (name.StartsWith(prefix))
             {
                 name = name[prefix.Length..];
@@ -97,17 +98,19 @@ public class SaveEventDataModel<T>(T entity) : IEventDataModel, ITypedEventDataM
 
     public bool TryGetVariable(string name, out object? value)
     {
-        var prop = DatabaseSchema.Property(typeof(T), name);
-        if(prop != null)
+        var prefix = $"{typeof(T).Name}.";
+        if (name.StartsWith(prefix))
         {
-            value = prop.Getter()(Entity);
-            return true;
-        }
-        else
-        {
-            value = null;
-            return false;
+            name = name[prefix.Length..];
+            var prop = DatabaseSchema.Property(typeof(T), name);
+            if(prop != null)
+            {
+                value = prop.Getter()(Entity);
+                return true;
+            }
         }
+        value = null;
+        return false;
     }
 }
 
@@ -361,6 +364,7 @@ public class CreateEntitySaveEventAction<T> : IEventAction<SaveEvent<T>>
         {
             initializer.Execute(entity, dataModel);
         }
+        DbFactory.FindStore(EntityType, Guid.Empty, "", default, "", Logger.Main).Save(entity, "");
         return entity;
     }