Refactor configuration management to use SQLite and add Blazor components - #12
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This pull request introduces significant architectural changes to the SendHub application, focusing on removing the old Daemon-based backend and replacing it with a new web-based backend. The configuration and application settings are now managed via a SQLite-backed settings provider, and the SMTP/email sending logic has been refactored to use this new provider. Additionally, conventions for Blazor component development have been documented. Below are the most important changes grouped by theme:
Backend Architecture Changes:
SendHub.Daemon), its configuration, and tests, and replaced it with a new web-based backend (SendHub.Web) in the solution and application host. The app host and project references now point toSendHub.Webinstead of the Daemon. (SendHub.slnx,AppHost.cs,SendHub.AppHost.csproj,FolderWatcherSettings.cs,appsettings.json) [1] [2] [3] [4] [5]Configuration and Settings Refactor:
SqliteApplicationSettingsclass implementingIApplicationSettings, which persists all application settings (including SMTP and folder paths) in a SQLite database table. This class provides methods for reading, updating, and seeding default settings. (SqliteApplicationSettings.cs)SqliteApplicationSettingsas the singleton settings provider and removed the previous options-based configuration for SMTP and folder watcher settings. (Registration.cs)Email/SMTP Logic Refactor:
SmtpFileSenderto use the newIApplicationSettingsinterface for all configuration, removing theSmtpSettingsoptions class and associated validation. (SmtpFileSender.cs,SmtpSettings.cs) [1] [2]SmtpFileSenderTests.cs)Testing and Infrastructure:
SqliteApplicationSettingsto verify initialization, default seeding, updates, and idempotency. (SqliteApplicationSettingsTests.cs)FakeFileSystemWatcher.cs)Development Conventions:
.razor.csfiles. (claude.md)Additional:
MudBlazorUI library to dependencies for future UI work. (Directory.Packages.props)