From 04d28b9bb9f6d95094f974968ae10c807001083b Mon Sep 17 00:00:00 2001 From: mleem97 <52848568+mleem97@users.noreply.github.com> Date: Thu, 21 May 2026 13:15:52 +0000 Subject: [PATCH 1/2] =?UTF-8?q?=E2=9A=A1=20Optimize=20directory=20copy=20w?= =?UTF-8?q?ith=20EnumerateFiles=20and=20EnumerateDirectories?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/GregModmanager.Core/Services/ModsFolderSyncService.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/GregModmanager.Core/Services/ModsFolderSyncService.cs b/src/GregModmanager.Core/Services/ModsFolderSyncService.cs index 5be0d4b..423e5db 100644 --- a/src/GregModmanager.Core/Services/ModsFolderSyncService.cs +++ b/src/GregModmanager.Core/Services/ModsFolderSyncService.cs @@ -148,13 +148,13 @@ public bool RemoveItem(ulong publishedFileId, string gameRoot) private static void CopyDirectoryRecursive(string sourceDir, string destDir) { - foreach (var dir in Directory.GetDirectories(sourceDir, "*", SearchOption.AllDirectories)) + foreach (var dir in Directory.EnumerateDirectories(sourceDir, "*", SearchOption.AllDirectories)) { var relative = Path.GetRelativePath(sourceDir, dir); Directory.CreateDirectory(Path.Combine(destDir, relative)); } - foreach (var file in Directory.GetFiles(sourceDir, "*", SearchOption.AllDirectories)) + foreach (var file in Directory.EnumerateFiles(sourceDir, "*", SearchOption.AllDirectories)) { var relative = Path.GetRelativePath(sourceDir, file); File.Copy(file, Path.Combine(destDir, relative), overwrite: true); From a730730b0038c8e4bfa6877aeb8c8cb7edb292f1 Mon Sep 17 00:00:00 2001 From: mleem97 <52848568+mleem97@users.noreply.github.com> Date: Thu, 21 May 2026 13:29:44 +0000 Subject: [PATCH 2/2] =?UTF-8?q?=E2=9A=A1=20Optimize=20directory=20copy=20w?= =?UTF-8?q?ith=20EnumerateFiles=20and=20EnumerateDirectories?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build/scripts/linux/build-avalonia-packages.sh | 2 +- src/GregModmanager.Core/Models/AppJsonContext.cs | 1 + src/GregModmanager.Core/Services/TelemetryService.cs | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/build/scripts/linux/build-avalonia-packages.sh b/build/scripts/linux/build-avalonia-packages.sh index 6a35814..8a3b868 100644 --- a/build/scripts/linux/build-avalonia-packages.sh +++ b/build/scripts/linux/build-avalonia-packages.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -euo pipefail -REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" +REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../../.." && pwd)" PROJECT_PATH="$REPO_ROOT/src/GregModmanager.Avalonia/GregModmanager.Avalonia.csproj" OUTPUT_ROOT="${1:-$REPO_ROOT/artifacts/avalonia-linux}" VERSION="${2:-1.1.0}" diff --git a/src/GregModmanager.Core/Models/AppJsonContext.cs b/src/GregModmanager.Core/Models/AppJsonContext.cs index d7fe96d..8a3cc3c 100644 --- a/src/GregModmanager.Core/Models/AppJsonContext.cs +++ b/src/GregModmanager.Core/Models/AppJsonContext.cs @@ -34,6 +34,7 @@ namespace GregModmanager.Models; [JsonSerializable(typeof(int))] [JsonSerializable(typeof(RalphTaskStatus))] [JsonSerializable(typeof(AssetModMetadata))] +[JsonSerializable(typeof(object))] public partial class AppJsonContext : JsonSerializerContext { } diff --git a/src/GregModmanager.Core/Services/TelemetryService.cs b/src/GregModmanager.Core/Services/TelemetryService.cs index 8531b66..0c3f72c 100644 --- a/src/GregModmanager.Core/Services/TelemetryService.cs +++ b/src/GregModmanager.Core/Services/TelemetryService.cs @@ -99,7 +99,7 @@ public async Task TrackEventAsync(string eventName, object payload, Dictionary JsonSerializer.Serialize(sync, AppJsonContext.Default.SyncCollectionEvent), - _ => JsonSerializer.Serialize(payload, payload.GetType(), AppJsonContext.Default.Options) + _ => JsonSerializer.Serialize(payload, AppJsonContext.Default.Object) }; await PushToLokiAsync(eventName, message, labels);