This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
This is a .NET 10 Razor SDK library that provides common infrastructure components for Pro Reception distributed applications. The library is packaged and distributed as a NuGet package (ProReception.DistributionServerInfrastructure).
# Build the project
dotnet build
# Build in release mode
dotnet build -c Release
# Package for NuGet (happens automatically via GitHub Actions)
dotnet packThis is a shared infrastructure library with the following key components:
WebApplicationBuilderExtensions.AddProReceptionDistributionServerInfrastructure<TSettingsManagerInterface, TSettingsManagerImplementation>()- Main configuration methodWebApplicationExtensions.UseProReceptionDistributionServerInfrastructure()- Application middleware setup
SettingsManagerBase<T>- Abstract base class for app-specific settings managementISettingsManagerBase- Core interface for settings operations- Settings are encrypted and stored in
%LocalAppData%\Pro Reception\{AppName}\ - Supports secure token storage and retrieval for Pro Reception API authentication
ProReceptionApiClient- HTTP client for Pro Reception API endpointsApiClientBase- Base class with authentication and retry logic- Extension methods for specific API endpoints:
ActConnectorExtensions- ACT system integrationNoxConnectorExtensions- NOX system integrationMyExtensions- User account operationsPrinterLabelExtensions- Label printing functionalityNotificationExtensions- Push notification services
<ProReceptionConnection />- Pro Reception login/connection component<Logs />- Real-time log viewing component via SignalR
LogsHub- Real-time log streaming to connected clientsSignalRHostedService- Background service for SignalR operations
Applications using this library must provide:
{
"ProReceptionApi": {
"BaseUrl": "https://localhost:7016"
}
}Optional proxy configuration:
{
"Proxy": {
"Address": "http://proxy-server:8080"
}
}- Uses Serilog with console, file, and SignalR observers
- Log files written to
{SettingsDirectory}\Logs\log.txtwith daily rolling - Real-time log streaming via SignalR hub
Key external dependencies:
- MudBlazor 8.14.0 (UI components)
- Flurl.Http 4.0.2 (HTTP client)
- Serilog.AspNetCore 9.0.0 (logging)
- AuthenticatedEncryption 2.0.0 (settings encryption)
- System.Reactive 6.1.0 (reactive extensions)
The library is automatically published to NuGet when version.props is updated on the main branch via GitHub Actions workflow.