From fb1a2e564d7e756aeb7827d08a9893a9d8d0b13d Mon Sep 17 00:00:00 2001 From: jvyden Date: Sun, 15 May 2022 14:52:34 -0400 Subject: [PATCH] I don't know what's happening anymore. --- ...nsions.cs => RedisCollectionExtensions.cs} | 2 +- .../Extensions/RedisConnectionExtensions.cs | 23 +++++++++++++++++++ ProjectLighthouse/Redis.cs | 5 ++-- 3 files changed, 27 insertions(+), 3 deletions(-) rename ProjectLighthouse/Extensions/{IRedisCollectionExtensions.cs => RedisCollectionExtensions.cs} (93%) create mode 100644 ProjectLighthouse/Extensions/RedisConnectionExtensions.cs diff --git a/ProjectLighthouse/Extensions/IRedisCollectionExtensions.cs b/ProjectLighthouse/Extensions/RedisCollectionExtensions.cs similarity index 93% rename from ProjectLighthouse/Extensions/IRedisCollectionExtensions.cs rename to ProjectLighthouse/Extensions/RedisCollectionExtensions.cs index b9384846..a5426d88 100644 --- a/ProjectLighthouse/Extensions/IRedisCollectionExtensions.cs +++ b/ProjectLighthouse/Extensions/RedisCollectionExtensions.cs @@ -5,7 +5,7 @@ using Redis.OM.Searching; namespace LBPUnion.ProjectLighthouse.Extensions; [SuppressMessage("ReSharper", "LoopCanBePartlyConvertedToQuery")] -public static class IRedisCollectionExtensions +public static class RedisCollectionExtensions { public static void DeleteAll(this IRedisCollection collection, Func predicate) { diff --git a/ProjectLighthouse/Extensions/RedisConnectionExtensions.cs b/ProjectLighthouse/Extensions/RedisConnectionExtensions.cs new file mode 100644 index 00000000..9211b5c0 --- /dev/null +++ b/ProjectLighthouse/Extensions/RedisConnectionExtensions.cs @@ -0,0 +1,23 @@ +using System; +using System.Diagnostics; +using System.Threading.Tasks; +using LBPUnion.ProjectLighthouse.Logging; +using Redis.OM; +using Redis.OM.Contracts; + +namespace LBPUnion.ProjectLighthouse.Extensions; + +public static class RedisConnectionExtensions +{ + public static async Task RecreateIndexAsync(this IRedisConnection connection, Type type) + { + Logger.LogDebug("Recreating index for " + type.Name, LogArea.Redis); + + // TODO: use `await connection.DropIndexAndAssociatedRecordsAsync(type);` here instead when that becomes a thing + bool dropped = await connection.DropIndexAsync(type); + Logger.LogDebug("Dropped index: " + dropped, LogArea.Redis); + + bool created = await connection.CreateIndexAsync(type); + Logger.LogDebug("Created index: " + created, LogArea.Redis); + } +} \ No newline at end of file diff --git a/ProjectLighthouse/Redis.cs b/ProjectLighthouse/Redis.cs index 7aa6ab7c..79b53131 100644 --- a/ProjectLighthouse/Redis.cs +++ b/ProjectLighthouse/Redis.cs @@ -4,6 +4,7 @@ using System.Diagnostics; using System.Globalization; using System.Linq; using System.Threading.Tasks; +using LBPUnion.ProjectLighthouse.Extensions; using LBPUnion.ProjectLighthouse.Helpers; using LBPUnion.ProjectLighthouse.Logging; using LBPUnion.ProjectLighthouse.Types; @@ -38,8 +39,8 @@ public static class Redis return; } - await connection.CreateIndexAsync(typeof(Room)); - await connection.CreateIndexAsync(typeof(UserFriendStore)); + await connection.RecreateIndexAsync(typeof(Room)); + await connection.RecreateIndexAsync(typeof(UserFriendStore)); initialized = true; Logger.LogSuccess("Initialized Redis.", LogArea.Redis);