Merged
Conversation
- Added `WorldRuleManager`, `WorldRuleRepository`, and supporting interfaces for managing world rules. - Implemented components for editing (`WorldRuleEditor`), viewing (`WorldRuleList`), and managing markdown (`WorldRuleMarkdownEditor`). - Integrated FluentValidation with `WorldRuleCollectionValidator` for data validation. - Enabled multilingual content support via localized markdown files. - Added filesystem interaction for creating, editing, and saving rule stubs to disk.
- Deleted Razor components and related logic for Article Manager, Markdown Editor, World Rules Manager, and their respective editors and services. - Eliminated filesystem interactions, localization, and validation code specific to these features.
- Introduced a chooser interface for content types before managing tabs. - Added `_activeTab` state and logic to switch between chooser and tabs. - Updated `ArticleEditor` and `WorldRuleEditor` to notify parent components on tag changes.
- Added `IStringLocalizer` injections to `WorldRuleList`, `TagsEditor`, and related components. - Replaced hardcoded strings with localized resource keys across affected components. - Extended `Shared` resource file with new entries for localization.
…t override - Updated multiple Razor components (`TagsEditor`, `WorldRuleEditor`, `ArticleEditor`, `LocalizedMarkdownEditor`) to apply the `no-hover` class on `MudPaper`. - Extended CSS to disable hover effects for `card-glass.no-hover`.
…kdownEditor` - Introduced per-locale draft handling using an in-memory `_drafts` dictionary. - Added `OnLocaleChanged` method to save drafts and load content dynamically on locale change. - Adjusted `OnParametersSetAsync` logic to prevent redundant content loading. - Fixed `Onkeydown` event binding for `MudTextField` in `ArticleEditor`.
- Added `IStringLocalizer` injection to `ArticleListTests`. - Replaced hardcoded assertions with localized resource keys (`Shared.ListHidden`, `Shared.ListMissingNl`). - Updated service registration in test setup to include localization support.
…components (`ArticlesHomeSection`, `WorldRulesHomeSection`). - Removed `ArticleLatestHighlight` and `ArticleRecentGrid` components, consolidating their functionality into `ArticlesHomeSection`. - Introduced a dedicated `WorldRulesHomeSection` for showcasing World Rules with a dynamic card layout. - Enhanced `IArticleRepository` for better thread safety with immutable arrays. - Improved `WorldRuleValidator` to validate rule IDs as GUIDs. - Updated resource files and localization strings for both sections. - Removed unused markdown files and simplified site content structure.
- Added skeleton loaders for Article highlights, recent articles, and World Rules cards. - Replaced legacy null checks with `_isLoaded` flags. - Refactored property names for better readability (`_post` -> `HighlightedPost`, `_posts` -> `RemainingPosts`, `_rules` -> `WorldRules`).
- Simplified `OnInitializedAsync` by directly using arrays where applicable. - Optimized LINQ operations for better readability and efficiency.
- Introduced `CachedJsonRepository` base class for shared caching logic. - Updated `ArticleRepository` and `WorldRuleRepository` to inherit from `CachedJsonRepository`. - Simplified repository interfaces by removing redundant methods. - Optimized caching, serialization, and HTTP request handling for better performance and maintainability.
…d content management - Introduced `ContentBase` abstract class with shared properties and helper methods for content handling. - Added `IContentRepository` interface to standardize repository operations for `ContentBase`-derived types.
…CRUD functionality - Renamed `CachedJsonRepository` to `ContentRepository` for consistency with `IContentRepository`. - Replaced mutable `_items` array with immutable `ItemsById` dictionary for thread safety. - Added `GetAllAsync`, `GetByIdAsync`, `SaveAsync`, `DeleteByIdAsync`, and `GetAsJsonStringAsync` methods. - Improved cache handling logic with `EnsureCacheAsync` and `BuildIndex` for better performance and maintainability. - Updated serialization to use `AsJsonStringAsync` for unified JSON handling.
…on in DevFS - Introduced `IDevFileSystemCategoryManager` interface for managing file operations by category. - Added `DevFileSystemCategory` enum to define file categories (`Articles`, `WorldRules`). - Implemented `DevFileSystemCategoryManager` with category-specific methods for accessing, modifying, and deleting categorized files. - Updated `IDevFileSystemManager` and `DevFileSystemManager` methods to include `CancellationToken` support for improved cancellation handling. - Enhanced overall file system handling with category-based operations to improve scalability.
…sitory` for unified content handling and improved DevFS category management. Removed redundant methods for streamlined behavior.
…epository` and remove redundant methods for unified content management.
…ownFileName` and use `Guid.CreateVersion7()` for unique ID generation - Updated method calls and file path references to use `MarkdownFileName` for improved clarity. - Simplified ID initialization for new content with `Guid.CreateVersion7()` for better uniqueness and compatibility. - Refactored file-handling logic to align with the updated property and ID generation approach.
…outdated method calls
- Replaced `string` IDs with `Guid` in components and pages for improved type safety and consistency.
- Updated repository methods to use `GetAllAsync`, `GetAllWithoutHiddenAsync`, and `GetByIdAsync`.
- Replaced `File` with `MarkdownFileName` in `Article` and `WorldRule` references for clarity.
- Implemented `Guid.ToString("D")` formatting for uniform ID representation.
- Simplified JSON serialization/deserialization and file path handling with repository improvements.
…ileName` and enforce `Guid` for IDs - Updated all references to `File` in tests, validators, and repositories to use `MarkdownFileName` for clarity and consistency. - Enforced `Guid` IDs instead of `string` for improved type safety, replacing checks for empty strings with checks for `Guid.Empty`. - Removed obsolete duplicate file validation logic. - Adjusted repository methods to align with new naming conventions and ID changes, including `GetAllAsync` and `DeleteByIdAsync`. - Streamlined test assertions and error messages to reflect updated validation requirements.
…with `IContentStorage` and `IResourceStorage` for unified content handling - Removed `DevFileSystemManager`, `DevFileSystemPaths`, and `DevFileSystemCategoryManager`, consolidating file system operations under `ContentStorage` and `ResourceStorage`. - Introduced `IContentStorage` and `IResourceStorage` interfaces to handle localized file operations and resource files, respectively. - Updated `ArticleManager` and related tests to use `IContentStorage` and `IResourceStorage`, improving clarity and modularity. - Adjusted path handling in components and services to align with the unified storage architecture.
…sistencies in method and parameter declarations.
…d localization components - Removed outdated `DevFileSystemManagerTests` and `DevFileSystemPathsTests`, replacing them with `LocalFileStorageTests` and `ResourceStorageTests` under `FileSystem` namespace. - Reorganized tests for `Article`, `WorldRule`, and localization services to match updated namespaces and unified storage architecture. - Enhanced test cases to reflect new validation rules, improved file path conventions, and `Guid` ID usage.
…Contact` and `WorldRule` services - Added tests for `IContactInfoProvider`, `IWorldRuleManager`, `IWorldRuleRepository`, and `WorldRule` validators. - Organized assertions to align with updated service registrations.
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.
No description provided.