Refactor and update various components of EchoHub.Server

- Updated launchSettings.json for consistency.
- Refactored FileValidationHelper to improve image validation logic.
- Enhanced ServerDirectoryService for better connection handling and user count updates.
- Improved DatabaseSetup for legacy database handling and seeding default channels.
- Refined FirstRunSetup to ensure JWT secret generation.
- Removed appsettings.Development.json as it is no longer needed.
- Updated EchoHub.Tests project file for consistency.
- Added unit tests for FileValidationHelper and PresenceTracker with improved assertions.
- Updated ValidationConstantsTests to ensure regex validations are correct.
- Cleaned up solution file formatting for better readability.
This commit is contained in:
HueByte
2026-02-19 10:12:28 +01:00
parent 32e01e8d71
commit 9975f4e4be
57 changed files with 4401 additions and 4378 deletions
+32 -32
View File
@@ -1,32 +1,32 @@
using Serilog;
using Terminal.Gui.App;
namespace EchoHub.Client;
/// <summary>
/// Eliminates repeated Task.Run/try/catch/app.Invoke(ShowError) boilerplate.
/// Runs async work on a background thread and routes exceptions to the UI.
/// </summary>
public static class AsyncRunner
{
public static void Run(
IApplication app,
Func<Task> work,
Action<string> showError,
string errorPrefix,
string? logContext = null)
{
Task.Run(async () =>
{
try
{
await work();
}
catch (Exception ex)
{
Log.Error(ex, "{Context} failed", logContext ?? errorPrefix);
app.Invoke(() => showError($"{errorPrefix}: {ex.Message}"));
}
});
}
}
using Serilog;
using Terminal.Gui.App;
namespace EchoHub.Client;
/// <summary>
/// Eliminates repeated Task.Run/try/catch/app.Invoke(ShowError) boilerplate.
/// Runs async work on a background thread and routes exceptions to the UI.
/// </summary>
public static class AsyncRunner
{
public static void Run(
IApplication app,
Func<Task> work,
Action<string> showError,
string errorPrefix,
string? logContext = null)
{
Task.Run(async () =>
{
try
{
await work();
}
catch (Exception ex)
{
Log.Error(ex, "{Context} failed", logContext ?? errorPrefix);
app.Invoke(() => showError($"{errorPrefix}: {ex.Message}"));
}
});
}
}