Skip to content

Extract Logging + Provider libraries, rename ProviderDatabase, restructure tests#543

Merged
NikTilton merged 6 commits into
mainfrom
jschick/provider-extraction
May 26, 2026
Merged

Extract Logging + Provider libraries, rename ProviderDatabase, restructure tests#543
NikTilton merged 6 commits into
mainfrom
jschick/provider-extraction

Conversation

@jschick04
Copy link
Copy Markdown
Collaborator

@jschick04 jschick04 commented May 23, 2026

Summary

Extracts new leaf libraries EventLogExpert.Logging and EventLogExpert.Provider from EventLogExpert.Eventing, renames EventLogExpert.ProviderDatabase to EventLogExpert.Provider.Database, restructures internal folders for VSA alignment, and consolidates a handful of type renames toward consistent Database-prefixed vocabulary.

Architecture changes

New libraries (2)

  • EventLogExpert.Logging (leaf, zero project refs) â€" ITraceLogger, LogHandlerCore, six interpolated-string log handlers, TraceLogger sink. Internal folders: Abstractions/, Abstractions/Handlers/, Sinks/.
  • EventLogExpert.Provider (leaf, zero project refs) â€" provider domain contracts and models. Internal folders: Models/, Lookup/, Maintenance/, Schema/, Resolution/.

Renamed library (1)

  • EventLogExpert.ProviderDatabase → EventLogExpert.Provider.Database. References switched to Provider + Logging (drops direct Eventing ref). New subfolders: Context/, Maintenance/, Serialization/, DependencyInjection/.

Eventing slimmed

  • Logging/ folder deleted â€" moved to new Logging library
  • ProviderDatabase/ folder deleted â€" contracts moved to Provider
  • Providers/ renamed → PublisherMetadata/
  • Common/Databases/ deleted â€" types moved to Provider/Resolution/

Internal reorganization

  • EventDbTool: introduced Commands/ and ProviderSources/ subfolders
  • UI: Database/SettingsUpgradeProgressBanner.razor* → Settings/

Test project changes

  • New: EventLogExpert.Provider.Tests (Models/, Schema/, Resolution/)
  • Renamed: EventLogExpert.ProviderDatabase.Tests → EventLogExpert.Provider.Database.Tests with mirrored subfolders
  • Renamed: EventLogExpert.ProviderDatabase.IntegrationTests → EventLogExpert.Provider.Database.IntegrationTests
  • Eventing.Tests/Providers/ → Eventing.Tests/PublisherMetadata/ (and integration tests)
  • UI.Tests/Database/SettingsUpgradeProgressBannerTests.cs → UI.Tests/Settings/

Code changes beyond moves

  • Removed ITraceLogger? param from IProviderDetailsLookupFactory.Create(); ITraceLogger now injected via ctor on ProviderDbContextFactory
  • ProviderDetails.GetEventsById / GetMessagesByShortId promoted from internal to public
  • FilterTestFixtures.All converted to an expression-bodied property to be initialization-order independent
  • Type rename pass (consistent Database vocabulary matching the user-facing "Manage Databases" UI):
    • IActiveCatalogPathsProvider → IActiveDatabases (property ActiveDatabases → Paths)
    • IProviderCatalogMaintenance → IProviderDatabaseMaintenance
    • CatalogUpgradeException → DatabaseUpgradeException
    • CatalogSchemaState → DatabaseSchemaState
    • CatalogSchemaVersion → DatabaseSchemaVersion
    • CatalogPathSorter → DatabasePathSorter
    • DatabaseEntryStore → DatabaseRegistry
  • scripts/run-tests.ps1: DockerCli.exe resolution made robust (walks up from docker.exe and falls back to %ProgramFiles%\Docker\Docker\DockerCli.exe)

Documentation

  • New docs/ARCHITECTURE.md documenting the Runtime/UI mirror rule and the per-library dependency graph

Dependency graph (post-extraction)

EventLogExpert.Logging           (leaf)
EventLogExpert.Provider          (leaf)
EventLogExpert.Provider.Database → Provider + Logging
EventLogExpert.Eventing          → Provider + Logging
EventLogExpert.Filtering         → Eventing
EventLogExpert.Runtime           → Eventing + Filtering
EventLogExpert.UI                → Runtime
EventLogExpert.EventDbTool       → Eventing + Provider.Database
EventLogExpert (MAUI head)       → Runtime + UI + Provider.Database

Validation

  • Build: 0 errors, 0 warnings
  • Unit tests: 2,195 passed across 7 unit test projects
  • Integration suites (docker compose / Windows containers): eventing (299 passed, 2 skipped), runtime (passed), eventdbtool (passed)

@jschick04 jschick04 requested a review from a team as a code owner May 23, 2026 02:15
Copilot AI review requested due to automatic review settings May 23, 2026 02:15
@jschick04 jschick04 changed the title Extract Logging + Provider libraries, rename ProviderDatabase, restructure tests, apply ReSharper cleanup Extract Logging + Provider libraries, rename ProviderDatabase, restructure tests May 23, 2026
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR restructures the solution by extracting two new leaf libraries (EventLogExpert.Logging, EventLogExpert.Provider), renaming/splitting the provider database layer into EventLogExpert.Provider.Database, and updating downstream projects (Runtime/UI/Eventing/EventDbTool + tests) to use the new dependency graph and naming.

Changes:

  • Extract Logging and Provider leaf projects; migrate types/namespaces and update references across the solution.
  • Rename/rehome provider DB implementation into EventLogExpert.Provider.Database, including updated DI wiring and test project renames/restructure.
  • Apply broad ReSharper cleanup and vocabulary renames (e.g., Catalog*Database*) across runtime, tooling, and tests.

Reviewed changes

Copilot reviewed 250 out of 256 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
tests/Unit/EventLogExpert.UI.Tests/Settings/SettingsUpgradeProgressBannerTests.cs Update UI test namespace/usings for Settings banner + new Logging abstractions.
tests/Unit/EventLogExpert.UI.Tests/Menu/MenuRendererTests.cs Adjust usings ordering after refactor.
tests/Unit/EventLogExpert.UI.Tests/DebugLog/DebugLogModalTests.cs Adjust usings ordering after refactor.
tests/Unit/EventLogExpert.UI.Tests/Database/DatabaseEntryRowTests.cs Update usings and simplify named-arg calls.
tests/Unit/EventLogExpert.UI.Tests/Banner/BannerHostTests.cs Switch to new Logging abstractions and UI namespace import.
tests/Unit/EventLogExpert.Runtime.Tests/Update/GitHubServiceTests.cs Switch from Eventing.Logging to new Logging abstractions.
tests/Unit/EventLogExpert.Runtime.Tests/Update/Deployment/DeploymentServiceTests.cs Switch to new Logging abstractions + update test cases for deployment failure paths.
tests/Unit/EventLogExpert.Runtime.Tests/TestUtils/LoggerUtils.cs Switch to new Logging abstractions.
tests/Unit/EventLogExpert.Runtime.Tests/StatusBar/StatusBarStoreTests.cs Reorder alias using.
tests/Unit/EventLogExpert.Runtime.Tests/Menu/MenuServiceTests.cs Replace named args with positional args in tests.
tests/Unit/EventLogExpert.Runtime.Tests/LogTable/ResolvedEventOrderingTests.cs Remove/reorder usings.
tests/Unit/EventLogExpert.Runtime.Tests/LogTable/LogTableStoreTests.cs Remove/reorder usings and fix constants import.
tests/Unit/EventLogExpert.Runtime.Tests/FilterGroup/FilterGroupExtensionsTests.cs Remove/reorder usings and align constants import.
tests/Unit/EventLogExpert.Runtime.Tests/FilterGroup/EffectsTests.cs Remove/reorder usings and align constants import.
tests/Unit/EventLogExpert.Runtime.Tests/FilterCache/FilterCacheStoreTests.cs Remove/reorder usings and align constants import.
tests/Unit/EventLogExpert.Runtime.Tests/FilterCache/EffectsTests.cs Remove/reorder usings and align constants import.
tests/Unit/EventLogExpert.Runtime.Tests/EventLog/EventLogStoreTests.cs Reorder tests (no logic change).
tests/Unit/EventLogExpert.Runtime.Tests/EventLog/EventLogDataTests.cs Remove unused using.
tests/Unit/EventLogExpert.Runtime.Tests/EventLog/EventLogDataExtensionsTests.cs Remove unused using.
tests/Unit/EventLogExpert.Runtime.Tests/DependencyInjection/RuntimeServiceCollectionExtensionsTests.cs Update DI expectations to new Provider abstractions (IActiveDatabases).
tests/Unit/EventLogExpert.Runtime.Tests/Common/Display/ReversedListViewTests.cs Simplify indexer setter test expression.
tests/Unit/EventLogExpert.Runtime.Tests/Banner/BannerServiceTests.cs Switch to new Logging abstractions + positional args adjustments.
tests/Unit/EventLogExpert.Provider.Tests/Schema/SchemaStateMessagesTests.cs Move tests to new Provider.Schema namespace.
tests/Unit/EventLogExpert.Provider.Tests/Schema/DatabaseUpgradeExceptionTests.cs Move tests to Provider.Schema and align rename (class name currently inconsistent).
tests/Unit/EventLogExpert.Provider.Tests/Schema/DatabaseSchemaStateTests.cs Add/adjust schema-state tests in new Provider.Schema (class name currently inconsistent).
tests/Unit/EventLogExpert.Provider.Tests/Resolution/DatabasePathSorterTests.cs Move tests to Provider.Resolution (class name currently inconsistent).
tests/Unit/EventLogExpert.Provider.Tests/GlobalUsings.cs Add Xunit global using for new Provider test project.
tests/Unit/EventLogExpert.Provider.Tests/EventLogExpert.Provider.Tests.csproj New test project for Provider leaf library.
tests/Unit/EventLogExpert.Provider.Database.Tests/Serialization/ProviderJsonContextTests.cs Update usings/namespaces for Provider.Database serialization tests.
tests/Unit/EventLogExpert.Provider.Database.Tests/Serialization/CompressedJsonValueConverterTests.cs Update namespace and imports for serialization tests.
tests/Unit/EventLogExpert.Provider.Database.Tests/Maintenance/ProviderDetailsMergerTests.cs Update imports/namespaces for Provider models + ProviderDatabase maintenance.
tests/Unit/EventLogExpert.Provider.Database.Tests/GlobalUsings.cs Add Xunit global using for renamed Provider.Database test project.
tests/Unit/EventLogExpert.Provider.Database.Tests/EventLogExpert.Provider.Database.Tests.csproj Update project reference to new Provider.Database project.
tests/Unit/EventLogExpert.Provider.Database.Tests/DependencyInjection/ProviderDatabaseServiceCollectionExtensionsTests.cs Update usings/namespace to new Provider + Provider.Database DI types.
tests/Unit/EventLogExpert.Filtering.Tests/TestUtils/FilterTestFixtures.cs Make All an expression-bodied property to avoid static init ordering issues.
tests/Unit/EventLogExpert.Filtering.Tests/FilterCompilerTests.cs Remove extra blank line (formatting).
tests/Unit/EventLogExpert.Filtering.Tests/EventData/EventPropertyValuesCacheTests.cs Remove unused usings.
tests/Unit/EventLogExpert.Filtering.Tests/Drafts/FilterDraftModeTests.cs Formatting-only adjustments.
tests/Unit/EventLogExpert.Filtering.Tests/Drafts/FilterComparisonDraftTests.cs Remove unused usings.
tests/Unit/EventLogExpert.Filtering.Tests/Compilation/FilterServiceTests.cs Minor formatting change for object initializer.
tests/Unit/EventLogExpert.Filtering.Tests/Basic/FilterComparisonTests.cs Remove unused usings/blank line.
tests/Unit/EventLogExpert.Filtering.Tests/Basic/BasicFilterFormatterTests.cs Remove unused usings.
tests/Unit/EventLogExpert.Eventing.Tests/Resolvers/EventXmlResolverTests.cs Replace named args with positional args in helper calls.
tests/Unit/EventLogExpert.Eventing.Tests/Interop/NativeMethodsEvtTests.cs Simplify unchecked cast.
tests/Unit/EventLogExpert.Eventing.Tests/EventLogExpert.Eventing.Tests.csproj Update provider DB project reference to Provider.Database.
tests/Unit/EventLogExpert.Eventing.Tests/Common/Channels/LogChannelMethodsTests.cs Swap test names/bodies for clarity around hyphen handling.
tests/Unit/EventLogExpert.EventDbTool.Tests/RegexHelperTests.cs Switch to new Logging abstractions.
tests/Unit/EventLogExpert.EventDbTool.Tests/ProgramTests.cs Switch to new Logging abstractions + positional args.
tests/Shared/EventLogExpert.Filtering.TestUtils/FilterBuilder.cs Reorder usings.
tests/Shared/EventLogExpert.Eventing.TestUtils/SqliteTestDb.cs Formatting + positional args for Directory.Delete.
tests/Shared/EventLogExpert.Eventing.TestUtils/EventUtils.cs Switch provider model import to new Provider.Models namespace + normalize BOM/header.
tests/Shared/EventLogExpert.Eventing.TestUtils/EventLogExpert.Eventing.TestUtils.csproj Add Provider.Database project reference.
tests/Integration/EventLogExpert.Runtime.IntegrationTests/TestUtils/DatabaseSeedUtils.cs Switch to new Logging + Provider.Database.Context namespace and positional args.
tests/Integration/EventLogExpert.Runtime.IntegrationTests/TestUtils/Constants/Constants.Database.cs Reorder constants.
tests/Integration/EventLogExpert.Runtime.IntegrationTests/GlobalUsings.cs Simplify AssemblyFixture attribute usage.
tests/Integration/EventLogExpert.Runtime.IntegrationTests/EventLogExpert.Runtime.IntegrationTests.csproj Update Provider.Database project reference.
tests/Integration/EventLogExpert.Runtime.IntegrationTests/DebugLog/DebugLogServiceTests.cs Reorder/move a test (no logic change).
tests/Integration/EventLogExpert.ProviderDatabase.IntegrationTests/GlobalUsings.cs Delete old integration test global usings for renamed project.
tests/Integration/EventLogExpert.Provider.Database.IntegrationTests/xunit.runner.json Add xUnit config to disable parallelization.
tests/Integration/EventLogExpert.Provider.Database.IntegrationTests/GlobalUsings.cs New global usings + AssemblyFixture for renamed Provider.Database integration tests.
tests/Integration/EventLogExpert.Provider.Database.IntegrationTests/EventLogExpert.Provider.Database.IntegrationTests.csproj Update Provider.Database project reference.
tests/Integration/EventLogExpert.Provider.Database.IntegrationTests/ContainerRequiredFixture.cs Rename namespace to Provider.Database.IntegrationTests.
tests/Integration/EventLogExpert.Eventing.IntegrationTests/Resolvers/VersatileEventResolverTests.cs Switch to IActiveDatabases + new Provider/Logging namespaces + ProviderDbContextFactory location.
tests/Integration/EventLogExpert.Eventing.IntegrationTests/Resolvers/LocalProviderEventResolverTests.cs Rename/rework concurrency tests and switch to new Logging abstractions.
tests/Integration/EventLogExpert.Eventing.IntegrationTests/Readers/EventLogSessionTests.cs Reorder/add consistency tests for GetLogNames, GetProviderNames, and GlobalSession.
tests/Integration/EventLogExpert.Eventing.IntegrationTests/PublisherMetadata/RegistryProviderTests.cs Move to PublisherMetadata folder/namespace + reorder tests.
tests/Integration/EventLogExpert.Eventing.IntegrationTests/PublisherMetadata/ProviderMetadataTests.cs Update namespace/usings to PublisherMetadata + new Logging.
tests/Integration/EventLogExpert.Eventing.IntegrationTests/PublisherMetadata/EventMessageProviderTests.cs Update namespace/usings to PublisherMetadata + new Logging.
tests/Integration/EventLogExpert.Eventing.IntegrationTests/PublisherMetadata/EventMessageProviderIntegrationTests.cs Update namespace/usings + move/add consistency test.
tests/Integration/EventLogExpert.Eventing.IntegrationTests/GlobalUsings.cs Simplify AssemblyFixture attribute usage.
tests/Integration/EventLogExpert.Eventing.IntegrationTests/EventLogExpert.Eventing.IntegrationTests.csproj Update Provider.Database project reference.
tests/Integration/EventLogExpert.Eventing.IntegrationTests/ApplicationLogSeedFixture.cs Minor refactor/formatting and method ordering.
tests/Integration/EventLogExpert.EventDbTool.IntegrationTests/UpgradeDatabaseCommandTests.cs Update command namespace + Provider/Logging/DbContext changes.
tests/Integration/EventLogExpert.EventDbTool.IntegrationTests/TestUtils/DatabaseTestUtils.cs Switch to Provider.Models + ProviderDbContext namespace.
tests/Integration/EventLogExpert.EventDbTool.IntegrationTests/ShowCommandTests.cs Update command namespace + positional args in API calls.
tests/Integration/EventLogExpert.EventDbTool.IntegrationTests/ProviderSourceTests.cs Update provider source namespace + new Logging abstractions.
tests/Integration/EventLogExpert.EventDbTool.IntegrationTests/MtaProviderSourceTests.cs Update provider source namespace + positional args in API calls.
tests/Integration/EventLogExpert.EventDbTool.IntegrationTests/MergeDatabaseCommandTests.cs Update command namespace + positional args in API calls.
tests/Integration/EventLogExpert.EventDbTool.IntegrationTests/GlobalUsings.cs Simplify AssemblyFixture attribute usage.
tests/Integration/EventLogExpert.EventDbTool.IntegrationTests/DiffDatabaseCommandTests.cs Update command namespace + ProviderDbContext namespace.
tests/Integration/EventLogExpert.EventDbTool.IntegrationTests/CreateDatabaseCommandTests.cs Update command namespace + positional args + helper signature updates.
src/EventLogExpert/wwwroot/index.html Attribute ordering/formatting cleanup.
src/EventLogExpert/Platforms/Windows/App.xaml XAML formatting cleanup.
src/EventLogExpert/MainPage.xaml.cs Switch to new Logging abstractions and reorder usings.
src/EventLogExpert/MainPage.xaml XAML formatting cleanup.
src/EventLogExpert/EventLogExpert.csproj Update project reference to Provider.Database.
src/EventLogExpert/App.xaml.cs Switch to new Logging abstractions and reorder usings.
src/EventLogExpert/App.xaml XAML formatting cleanup.
src/EventLogExpert/Adapters/Menu/MauiMenuActionService.cs Switch to new Logging abstractions and reorder usings.
src/EventLogExpert/Adapters/Lifecycle/WindowsApplicationRestartService.cs Switch to new Logging abstractions.
src/EventLogExpert/Adapters/ClipboardAdapter/ClipboardService.cs Switch to new Logging abstractions.
src/EventLogExpert/_Imports.razor Reorganize imports and align with new layering.
src/EventLogExpert.UI/Update/ReleaseNotesModal.razor.cs Reorder usings.
src/EventLogExpert.UI/StatusBar/StatusBar.razor.cs Formatting-only attribute layout changes.
src/EventLogExpert.UI/StatusBar/StatusBar.razor Formatting-only ternary layout change.
src/EventLogExpert.UI/Settings/SettingsUpgradeProgressBanner.razor.css New isolated CSS for Settings upgrade progress banner.
src/EventLogExpert.UI/Settings/SettingsUpgradeProgressBanner.razor.cs Move component to UI.Settings namespace + new Logging abstractions.
src/EventLogExpert.UI/Settings/SettingsUpgradeProgressBanner.razor Class ordering tweaks in markup.
src/EventLogExpert.UI/Settings/SettingsModal.razor.cs Reorder usings/DI properties and minor lambda simplification.
src/EventLogExpert.UI/Settings/SettingsModal.razor Attribute ordering/formatting + key placement changes.
src/EventLogExpert.UI/Modal/ModalHost.razor Attribute ordering changes.
src/EventLogExpert.UI/Modal/ModalChrome.razor.cs Doc comment formatting cleanup.
src/EventLogExpert.UI/Modal/ModalChrome.razor Attribute ordering changes for accessibility attributes and input.
src/EventLogExpert.UI/Menu/MenuRenderer.razor.cs Field ordering changes.
src/EventLogExpert.UI/Menu/MenuRenderer.razor Attribute/class ordering changes.
src/EventLogExpert.UI/Menu/MenuHost.razor Attribute ordering changes.
src/EventLogExpert.UI/Menu/MenuBar.razor.cs Remove “Manage Databases” menu item; keep “Settings”.
src/EventLogExpert.UI/Menu/MenuBar.razor Remove trailing whitespace line.
src/EventLogExpert.UI/LogTable/LogTablePane.razor.cs Switch to new Logging abstractions + reorder usings/injections.
src/EventLogExpert.UI/LogTable/LogTabBar.razor Attribute ordering changes.
src/EventLogExpert.UI/Inputs/ValueSelect.razor.cs Remove redundant self-namespace using and unused import.
src/EventLogExpert.UI/Inputs/ValueSelect.razor Attribute ordering changes.
src/EventLogExpert.UI/Inputs/TextInput.razor.cs Remove redundant self-namespace using.
src/EventLogExpert.UI/Inputs/TextInput.razor Attribute ordering changes.
src/EventLogExpert.UI/Inputs/BooleanSelect.razor.cs Remove redundant self-namespace using.
src/EventLogExpert.UI/FilterPane/FilterPane.razor.cs Reorder usings/injections.
src/EventLogExpert.UI/FilterPane/FilterPane.razor Attribute ordering changes and key placement tweaks.
src/EventLogExpert.UI/FilterGroup/FilterGroupSection.razor Parameter ordering changes.
src/EventLogExpert.UI/FilterGroup/FilterGroupModal.razor.cs Reorder usings/injections.
src/EventLogExpert.UI/FilterGroup/FilterGroupModal.razor Parameter ordering changes.
src/EventLogExpert.UI/FilterGroup/FilterGroup.razor.cs Reorder injected properties.
src/EventLogExpert.UI/FilterGroup/FilterGroup.razor Key placement and class ordering changes.
src/EventLogExpert.UI/FilterEditor/SubFilterRow.razor.cs Remove redundant self-namespace using.
src/EventLogExpert.UI/FilterEditor/SubFilterRow.razor Attribute ordering changes.
src/EventLogExpert.UI/FilterEditor/FilterRowChrome.razor Remove redundant using and reorder attributes.
src/EventLogExpert.UI/FilterEditor/FilterRow.razor.cs Reorder injected properties.
src/EventLogExpert.UI/FilterEditor/FilterRow.razor Key placement changes.
src/EventLogExpert.UI/FilterEditor/FilterComparisonEditor.razor Attribute ordering changes.
src/EventLogExpert.UI/FilterCache/FilterCacheModal.razor.cs Reorder usings.
src/EventLogExpert.UI/ErrorHandling/UnhandledExceptionHandler.razor.cs Switch to new Logging abstractions.
src/EventLogExpert.UI/DetailsPane/DetailsPane.razor.cs Switch to new Logging abstractions.
src/EventLogExpert.UI/DetailsPane/DetailsPane.razor Class ordering change.
src/EventLogExpert.UI/DebugLog/DebugLogModal.razor.cs Reorder usings.
src/EventLogExpert.UI/DebugLog/DebugLogModal.razor Attribute ordering change in Virtualize.
src/EventLogExpert.UI/Database/DatabaseRecoveryHost.razor.cs Switch to new Logging abstractions.
src/EventLogExpert.UI/Database/DatabaseRecoveryDialog.razor.cs Switch to new Logging abstractions + reorder usings.
src/EventLogExpert.UI/Database/DatabaseRecoveryDialog.razor Attribute ordering changes.
src/EventLogExpert.UI/Banner/BannerHost.razor.cs Switch to new Logging abstractions.
src/EventLogExpert.UI/Banner/BannerHost.razor Formatting + class ordering changes + small pattern-match adjustment.
src/EventLogExpert.UI/Alerts/PromptModal.razor Attribute ordering changes.
src/EventLogExpert.UI/Alerts/AlertModal.razor Attribute ordering changes.
src/EventLogExpert.UI/_Imports.razor Reorganize imports and tighten component-level dependency surface.
src/EventLogExpert.Runtime/Update/UpdateService.cs Switch to new Logging abstractions.
src/EventLogExpert.Runtime/Update/GitHubService.cs Switch to new Logging abstractions.
src/EventLogExpert.Runtime/Update/Deployment/DeploymentService.cs Switch to new Logging abstractions + adjust package deployment options.
src/EventLogExpert.Runtime/Menu/MenuItem.cs Doc comment formatting cleanup.
src/EventLogExpert.Runtime/LogTable/ColumnDefaults.cs Use GetValueOrDefault and reorder properties.
src/EventLogExpert.Runtime/FilterPane/IFilterPaneCommands.cs Reorder usings.
src/EventLogExpert.Runtime/FilterPane/FilterPaneState.cs Reorder usings.
src/EventLogExpert.Runtime/FilterPane/FilterPaneCommands.cs Reorder usings.
src/EventLogExpert.Runtime/FilterPane/Effects.cs Reorder usings.
src/EventLogExpert.Runtime/FilterGroup/Reducers.cs Remove unused using.
src/EventLogExpert.Runtime/FilterGroup/FilterGroupNode.cs Reorder usings.
src/EventLogExpert.Runtime/FilterGroup/FilterGroupExtensions.cs Reorder usings.
src/EventLogExpert.Runtime/EventLog/OpenLogEffects.cs Switch to new Logging abstractions and reorder fields.
src/EventLogExpert.Runtime/EventLog/LogWatcherService.cs Switch to new Logging abstractions.
src/EventLogExpert.Runtime/EventLog/LogCloseCoordinator.cs Reorder methods.
src/EventLogExpert.Runtime/EventLog/FilteringEffects.cs Switch to new Logging abstractions and reorder fields.
src/EventLogExpert.Runtime/EventLog/DatabaseCoordinationEffects.cs Switch to new Logging abstractions.
src/EventLogExpert.Runtime/DependencyInjection/RuntimeServiceCollectionExtensions.cs Update DI to Provider/Logging + rename DB registry types and IActiveDatabases.
src/EventLogExpert.Runtime/DebugLog/DebugLogService.cs Switch to new Logging abstractions (and remove partial).
src/EventLogExpert.Runtime/Database/DatabaseService.cs Rename active DB abstraction to IActiveDatabases and rename backing store to DatabaseRegistry.
src/EventLogExpert.Runtime/Database/DatabaseRecoveryService.cs Update to new Provider maintenance interface + DatabaseRegistry naming.
src/EventLogExpert.Runtime/Database/DatabaseImportService.cs Update to DatabaseRegistry and reorder methods.
src/EventLogExpert.Runtime/Database/DatabaseFileOperations.cs Update schema types and reorder helper methods.
src/EventLogExpert.Runtime/Database/DatabaseClassificationService.cs Update schema types + DatabaseRegistry naming and reorder helpers.
src/EventLogExpert.Runtime/Banner/BannerService.cs Minor positional-args cleanup for progress entry construction.
src/EventLogExpert.Runtime/Alerts/AlertDialogService.cs Replace named arg with positional arg in internal call.
src/EventLogExpert.ProviderDatabase/ProviderDbContextFactory.cs Remove old factory in old project (project deleted).
src/EventLogExpert.ProviderDatabase/EventLogExpert.ProviderDatabase.csproj Remove old ProviderDatabase project (replaced by Provider.Database).
src/EventLogExpert.Provider/Schema/SchemaStateMessages.cs Move schema messages into Provider leaf library.
src/EventLogExpert.Provider/Schema/DatabaseUpgradeException.cs Move upgrade exception into Provider leaf library.
src/EventLogExpert.Provider/Schema/DatabaseSchemaVersion.cs Rename schema version constants to DatabaseSchemaVersion.
src/EventLogExpert.Provider/Schema/DatabaseSchemaState.cs New schema state record in Provider leaf library.
src/EventLogExpert.Provider/Resolution/IActiveDatabases.cs New replacement for IActiveDatabasePathsProvider.
src/EventLogExpert.Provider/Resolution/DatabasePathSorter.cs Move sorter into Provider leaf library.
src/EventLogExpert.Provider/Models/ProviderDetails.cs Move provider models into Provider leaf library + promote lookup helpers to public.
src/EventLogExpert.Provider/Models/MessageModel.cs Move model into Provider leaf library + normalize BOM/header.
src/EventLogExpert.Provider/Models/EventModel.cs Move model into Provider leaf library + normalize BOM/header.
src/EventLogExpert.Provider/Maintenance/IProviderDatabaseMaintenance.cs Move maintenance interface into Provider leaf library + update schema types.
src/EventLogExpert.Provider/Lookup/IProviderDetailsLookupFactory.cs New factory interface in Provider leaf library (logger removed from signature).
src/EventLogExpert.Provider/Lookup/IProviderDetailsLookup.cs Move lookup contract into Provider leaf library + update schema types.
src/EventLogExpert.Provider/EventLogExpert.Provider.csproj New Provider leaf project.
src/EventLogExpert.Provider.Database/Serialization/ProviderJsonSerializerOptions.cs Move serialization under ProviderDatabase.Serialization namespace.
src/EventLogExpert.Provider.Database/Serialization/ProviderJsonContext.cs Update to Provider.Models and new serialization namespace.
src/EventLogExpert.Provider.Database/Serialization/CompressedJsonValueConverter.cs Update serialization namespace + minor ctor arg cleanup.
src/EventLogExpert.Provider.Database/Maintenance/ProviderDetailsMerger.cs Move merger under ProviderDatabase.Maintenance and update model/schema imports.
src/EventLogExpert.Provider.Database/Maintenance/ProviderDatabaseMaintenance.cs Implement maintenance against new Provider contracts and new DbContext namespace.
src/EventLogExpert.Provider.Database/EventLogExpert.Provider.Database.csproj New Provider.Database project with updated refs and metadata.
src/EventLogExpert.Provider.Database/DependencyInjection/ProviderDatabaseServiceCollectionExtensions.cs Update DI extension to register Provider + Provider.Database services.
src/EventLogExpert.Provider.Database/Context/ProviderDbContextFactory.cs New context factory taking logger via ctor and implementing new factory interface.
src/EventLogExpert.Provider.Database/Context/ProviderDbContext.cs Move DbContext into ProviderDatabase.Context and update schema/model types (contains compile-breaking nameof(...) currently).
src/EventLogExpert.Logging/Sinks/TraceLogger.cs Move trace logger sink into new Logging project and namespace.
src/EventLogExpert.Logging/EventLogExpert.Logging.csproj New Logging leaf project.
src/EventLogExpert.Logging/Abstractions/LogHandlerCore.cs Move logging handler core into new Logging abstractions.
src/EventLogExpert.Logging/Abstractions/ITraceLogger.cs Move ITraceLogger into new Logging abstractions and normalize BOM/header.
src/EventLogExpert.Logging/Abstractions/Handlers/WarningLogHandler.cs Move handler into new Logging abstractions.
src/EventLogExpert.Logging/Abstractions/Handlers/TraceLogHandler.cs Move handler into new Logging abstractions.
src/EventLogExpert.Logging/Abstractions/Handlers/InformationLogHandler.cs Move handler into new Logging abstractions.
src/EventLogExpert.Logging/Abstractions/Handlers/ErrorLogHandler.cs Move handler into new Logging abstractions.
src/EventLogExpert.Logging/Abstractions/Handlers/DebugLogHandler.cs Move handler into new Logging abstractions.
src/EventLogExpert.Logging/Abstractions/Handlers/CriticalLogHandler.cs Move handler into new Logging abstractions.
src/EventLogExpert.Filtering/Parsing/FilterParser.cs Reorder usings.
src/EventLogExpert.Filtering/Lowering/ResolvedEventField.cs Remove unused using.
src/EventLogExpert.Filtering/Lowering/Lowerer.cs Move FlattenAnd helper and reorder methods.
src/EventLogExpert.Filtering/Lowering/FilterBinaryOperator.cs Remove unused using.
src/EventLogExpert.Filtering/FilterCompiler.cs Reorder usings.
src/EventLogExpert.Filtering/Evaluation/ResolvedEventExtensions.cs Remove redundant self-namespace using.
src/EventLogExpert.Filtering/Evaluation/FilterExtensions.cs Remove redundant self-namespace using/blank line.
src/EventLogExpert.Eventing/Resolvers/EventXmlResolver.cs Simplify AwaitLazyAsync to expression-bodied method.
src/EventLogExpert.Eventing/Resolvers/EventResolverBase.cs Switch to Provider.Models + Logging abstractions; adjust dispose guard (now empty block).
src/EventLogExpert.Eventing/Resolvers/EventResolver.cs Update to new Provider/Logging contracts + IActiveDatabases and factory signature changes.
src/EventLogExpert.Eventing/Readers/EventLogSession.cs Remove partial keyword (class now non-partial).
src/EventLogExpert.Eventing/Readers/EventLogReader.cs Remove partial keyword (class now non-partial).
src/EventLogExpert.Eventing/PublisherMetadata/RegistryProvider.cs Rename/move from Providers → PublisherMetadata and switch to new Logging abstractions.
src/EventLogExpert.Eventing/PublisherMetadata/ProviderMetadata.cs Rename/move and switch to new Logging abstractions; remove partial.
src/EventLogExpert.Eventing/PublisherMetadata/EventMetadata.cs Rename/move from Providers → PublisherMetadata; normalize BOM/header.
src/EventLogExpert.Eventing/PublisherMetadata/EventMessageProvider.cs Rename/move + switch to Provider.Models and new Logging abstractions.
src/EventLogExpert.Eventing/ProviderDatabase/ProviderDatabaseSchemaState.cs Remove old schema state type (moved to Provider).
src/EventLogExpert.Eventing/ProviderDatabase/IProviderDetailsLookupFactory.cs Remove old factory interface (moved to Provider).
src/EventLogExpert.Eventing/Interop/LibraryHandle.cs Remove partial keyword.
src/EventLogExpert.Eventing/Interop/EvtHandle.cs Remove partial keyword.
src/EventLogExpert.Eventing/EventLogExpert.Eventing.csproj Add project refs to new Logging and Provider projects.
src/EventLogExpert.Eventing/Common/Databases/IActiveDatabasePathsProvider.cs Remove old active DB paths provider (replaced by Provider.Resolution).
src/EventLogExpert.EventDbTool/RegexHelper.cs Switch to new Logging abstractions.
src/EventLogExpert.EventDbTool/ProviderSources/ProviderSource.cs Move into ProviderSources folder/namespace + update Provider/DB schema types.
src/EventLogExpert.EventDbTool/ProviderSources/MtaProviderSource.cs Move into ProviderSources folder/namespace + update Provider/Logging types.
src/EventLogExpert.EventDbTool/Program.cs Switch to new Logging sink + reorganize command imports + reorder helpers.
src/EventLogExpert.EventDbTool/EventLogExpert.EventDbTool.csproj Update project reference to Provider.Database.
src/EventLogExpert.EventDbTool/Commands/UpgradeDatabaseCommand.cs Move into Commands namespace + update schema types and ProviderDbContext usage.
src/EventLogExpert.EventDbTool/Commands/ShowCommand.cs Move into Commands namespace + update ProviderSources usage and signature formatting.
src/EventLogExpert.EventDbTool/Commands/MergeDatabaseCommand.cs Move into Commands namespace + update schema types and ProviderDbContext usage.
src/EventLogExpert.EventDbTool/Commands/DiffDatabaseCommand.cs Move into Commands namespace + update ProviderSources and ProviderDbContext usage.
src/EventLogExpert.EventDbTool/Commands/DbToolCommand.cs Move into Commands namespace + update PublisherMetadata/Provider models usage.
src/EventLogExpert.EventDbTool/Commands/CreateDatabaseCommand.cs Move into Commands namespace + update ProviderSources and ProviderDbContext usage.
EventLogExpert.slnx Add new projects (Logging, Provider, Provider.Database) and update test project names.
docs/ARCHITECTURE.md New architecture doc describing dependency graph and boundaries.
Directory.Packages.props Formatting-only changes (central package versions unchanged).
Directory.Build.props Formatting-only cleanup.
Comments suppressed due to low confidence (6)

src/EventLogExpert.Provider.Database/Context/ProviderDbContext.cs:113

  • nameof(Provider.Models.ProviderDetails.ResolvedFromOwningPublisher) references a Provider namespace that doesn’t exist in this solution (the type is EventLogExpert.Provider.Models.ProviderDetails). This will not compile; use nameof(ProviderDetails.ResolvedFromOwningPublisher) (or fully qualify with EventLogExpert.Provider.Models.ProviderDetails).
    src/EventLogExpert.Provider.Database/Context/ProviderDbContext.cs:343
  • nameof(Provider.Models.ProviderDetails.ProviderName) references a Provider namespace that isn’t defined (should be ProviderDetails.ProviderName from EventLogExpert.Provider.Models). As written this won’t compile.
    src/EventLogExpert.Provider.Database/Context/ProviderDbContext.cs:360
  • nameof(Provider.Models.ProviderDetails.ResolvedFromOwningPublisher) again references a non-existent Provider namespace. Replace with nameof(ProviderDetails.ResolvedFromOwningPublisher) (or fully qualify correctly) to avoid a compile error.
    tests/Unit/EventLogExpert.Provider.Tests/Schema/DatabaseUpgradeExceptionTests.cs:10
  • The test class name (CatalogUpgradeExceptionTests) no longer matches the type under test (DatabaseUpgradeException) or the file name. Rename the test class to DatabaseUpgradeExceptionTests (or similar) to keep names consistent with the new Database* vocabulary.
    tests/Unit/EventLogExpert.Provider.Tests/Schema/DatabaseSchemaStateTests.cs:9
  • The test class name (CatalogSchemaStateTests) doesn’t match the renamed type under test (DatabaseSchemaState) or the file name. Renaming it to DatabaseSchemaStateTests will keep the suite discoverable and aligned with the new naming scheme.
    tests/Unit/EventLogExpert.Provider.Tests/Resolution/DatabasePathSorterTests.cs:9
  • The test class is named CatalogPathSorterTests but it exercises DatabasePathSorter and the file is DatabasePathSorterTests.cs. Rename the class to DatabasePathSorterTests for consistency with the new Database* vocabulary and to ease navigation.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/EventLogExpert.Eventing/Resolvers/EventResolverBase.cs Outdated
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 250 out of 256 changed files in this pull request and generated 1 comment.

Comments suppressed due to low confidence (3)

tests/Unit/EventLogExpert.Provider.Tests/Schema/DatabaseUpgradeExceptionTests.cs:9

  • The test class name (CatalogUpgradeExceptionTests) no longer matches the type under test (DatabaseUpgradeException) or the file name. Renaming the class to DatabaseUpgradeExceptionTests would keep test naming consistent and make failures easier to interpret.
    tests/Unit/EventLogExpert.Provider.Tests/Schema/DatabaseSchemaStateTests.cs:9
  • The test class name (CatalogSchemaStateTests) doesn’t match the renamed production type (DatabaseSchemaState) or the file name. Renaming the class to DatabaseSchemaStateTests would align terminology and simplify navigation/search.
    tests/Unit/EventLogExpert.Provider.Tests/Resolution/DatabasePathSorterTests.cs:9
  • The test class name (CatalogPathSorterTests) doesn’t match the renamed production type (DatabasePathSorter) or the file name. Renaming the class to DatabasePathSorterTests would keep vocabulary consistent and reduce confusion.

Comment thread src/EventLogExpert.UI/LogTable/LogTabBar.razor
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 251 out of 257 changed files in this pull request and generated 2 comments.

Comments suppressed due to low confidence (3)

tests/Unit/EventLogExpert.Provider.Tests/Schema/DatabaseUpgradeExceptionTests.cs:10

  • The test class name still uses the old "Catalog" terminology even though the file (and the type under test) is DatabaseUpgradeException. Renaming the class to match the new Database vocabulary (and the filename) will keep discovery/search consistent.
    tests/Unit/EventLogExpert.Provider.Tests/Schema/DatabaseSchemaStateTests.cs:10
  • The test class name is still "CatalogSchemaStateTests" while the tested type is DatabaseSchemaState and the file is DatabaseSchemaStateTests.cs. Renaming the class to DatabaseSchemaStateTests will align naming with the new Database terminology and improve discoverability.
    tests/Unit/EventLogExpert.Provider.Tests/Resolution/DatabasePathSorterTests.cs:10
  • The test class name is "CatalogPathSorterTests" but the file and type under test are DatabasePathSorter. Renaming the class to DatabasePathSorterTests will keep naming consistent with the renamed Provider/Resolution APIs.

Comment thread src/EventLogExpert.UI/LogTable/LogTabBar.razor
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 251 out of 257 changed files in this pull request and generated no new comments.

Comments suppressed due to low confidence (3)

tests/Unit/EventLogExpert.Provider.Tests/Schema/DatabaseUpgradeExceptionTests.cs:10

  • Test class name still uses the old "Catalog" terminology even though the type under test is DatabaseUpgradeException (and the file is DatabaseUpgradeExceptionTests.cs). Renaming the test class to match the new Database* vocabulary will keep discovery/search and future refactors consistent.
    tests/Unit/EventLogExpert.Provider.Tests/Schema/DatabaseSchemaStateTests.cs:10
  • Test class name still uses the old "Catalog" terminology even though the type under test is DatabaseSchemaState/DatabaseSchemaVersion (and the file is DatabaseSchemaStateTests.cs). Renaming the test class to match the new Database* vocabulary will keep naming consistent with the production types.
    tests/Unit/EventLogExpert.Provider.Tests/Resolution/DatabasePathSorterTests.cs:10
  • Test class name still uses the old "Catalog" terminology even though the type under test is DatabasePathSorter (and the file is DatabasePathSorterTests.cs). Renaming the test class to match the Database* vocabulary will reduce confusion when searching for sorter behavior/tests.

@NikTilton NikTilton merged commit 98f4e74 into main May 26, 2026
7 checks passed
@NikTilton NikTilton deleted the jschick/provider-extraction branch May 26, 2026 17:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants