Skip to content

Refactor project structure and fix small code issues#45

Merged
darthsharp merged 16 commits intomainfrom
feature/refactorprojects
Apr 25, 2026
Merged

Refactor project structure and fix small code issues#45
darthsharp merged 16 commits intomainfrom
feature/refactorprojects

Conversation

@darthsharp
Copy link
Copy Markdown
Contributor

No description provided.

- Bumped `CreativeCoders.*` packages to version `6.7.2`.
- Updated `Spectre.Console` to version `0.55.2`.
- Reformatted the file for consistency.
…extract XML-RPC-specific functionality

- Moved XML-RPC types and related imports from `CreativeCoders.HomeMatic.Core` to a dedicated `CreativeCoders.HomeMatic.XmlRpc` namespace.
- Adjusted project references and imports for consistency across files.
- Introduced new utility `CcuDeviceKindExtensions` to map device kinds to corresponding RPC ports.
- Updated unit tests to reflect namespace changes and ensure compatibility.
- Removed obsolete classes: `CcuDeviceKindExtensions`, `HomeMaticDeviceSystems`, and `XmlRpcEndpoint`.
- Added XML documentation to interfaces, enums, and exception classes across `CreativeCoders.HomeMatic.Core` and `CreativeCoders.HomeMatic.XmlRpc`.
- Updated unit tests to reflect the removal of deprecated types and adjusted existing tests for consistency.
…y` static

- Removed commented-out legacy code from `CcuDeviceBuilder`.
- Updated `ParamSetKey` class to be static for improved clarity and usage.
- Renamed `RxMode` to `RxModes` across codebase to align with naming conventions.
- Refactored `ParameterFlags` to `ParameterUiAttributes`.
- Updated related tests and XML-RPC mappings to reflect the changes.
- Included suppressions for improved static analysis compatibility in `CcuDeviceBuilder`.
… mapping

- Introduced `CcuRoutingTable` as a thread-safe implementation of `ICcuRoutingTable` using `ConcurrentDictionary`.
- Updated `MultiCcuClient` to leverage routing table for optimized client resolution and per-device operations.
- Added tests for `CcuRoutingTable` and `MultiCcuClient` to validate new routing logic and caching behavior.
- Added new test classes: `CcuDeviceBaseTests`, `CcuDeviceTests`, `CompleteCcuDeviceBuilderTests`, `MultiCcuClientFactoryTests`, and `XmlRpcApiConnectionTests`.
- Increased code coverage for device parameter mapping, factory chaining, and error handling.
- Refactored existing tests to ensure consistency with updated namespaces and conventions.
…exports

- Introduced `ParamValueNameWhitelist` in `DeviceExportOptions` to filter exported parameter values by name.
- Updated `DeviceExporter` to apply name-based filtering in addition to param set filtering.
- Enhanced CLI command with whitelist integration and added tests for comprehensive coverage.
…nnels

- Introduced `CompleteCcuDeviceFakeBuilder` and `CompleteCcuDeviceChannelFakeBuilder` for streamlined test data creation.
- Added `ParamSetValuesBuilder` to simplify parameter set construction.
- Updated test suite to replace manual fake creation with new builders.
- Refactored tests for `DeviceExporter` and `DeviceExportOptions` for improved readability and maintainability.
- Added detailed XML comments to classes, interfaces, and methods across the `CreativeCoders.HomeMatic` and `CreativeCoders.HomeMatic.Exporting` namespaces.
- Improved codebase maintainability and tooling support with structured summaries, parameter descriptions, and examples.
- Removed unused namespaces across multiple files.
- Suppressed warnings for Inheritdoc usage in exception and class summaries.
- Applied `inheritdoc` annotations for consistent XML documentation.
- Refactored redundant lambda usage and adjusted collection initialization syntax.
- Updated return type in `BuildParamSetExportData` from `IEnumerable` to an array for consistency.
- Applied `[PublicAPI]` annotations to interfaces, classes, and extensions for improved tooling support.
- Simplified `CcuDevice` and `ParamSetValuesWithDescriptions` initialization expressions.
- Adjusted `.gitignore` and `.editorconfig` with new entries for project customization.
…pe safety

- Added `[PublicAPI]` annotations to interfaces and classes for improved tooling and API usability.
- Applied `[SuppressMessage]` attributes for static analysis in methods and converters.
- Improved type safety with `in` keyword and adapted property initializations in multiple constructors.
- Streamlined collection initialization syntax and adjusted method signatures for consistency.
@darthsharp darthsharp merged commit cb08c94 into main Apr 25, 2026
7 checks passed
@darthsharp darthsharp deleted the feature/refactorprojects branch April 25, 2026 16:12
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.

1 participant