Class BowireCatalogueProviderAccessor

Namespace
Kuestenlogik.Bowire.Sources
Assembly
Kuestenlogik.Bowire.dll

Singleton wrapper around the resolved IBowireCatalogueProvider (or null when the host hasn't selected one). Lets DI hold a non-null reference even when no provider is configured — the endpoint reads Provider and treats null as "empty catalogue".

public sealed class BowireCatalogueProviderAccessor
Inheritance
BowireCatalogueProviderAccessor
Inherited Members

Remarks

The accessor is mutable so #309's Settings → Catalogue providers UI can hot-swap the active provider at runtime. The boot-time provider (resolved from appsettings.json) is captured as DefaultProvider; a UI-driven override replaces Provider in place. Clearing the override restores the boot-time provider.

Constructors

BowireCatalogueProviderAccessor(IBowireCatalogueProvider?)

Construct an accessor wrapping the resolved provider (or null when no provider is configured).

public BowireCatalogueProviderAccessor(IBowireCatalogueProvider? provider)

Parameters

provider IBowireCatalogueProvider

The active provider, or null.

Properties

DefaultProvider

The boot-time provider resolved from appsettings.json. Captured at construction so a UI override can be cleared and the appsettings fallback restored without re-running Resolve(BowireCatalogueOptions, ILogger?).

public IBowireCatalogueProvider? DefaultProvider { get; }

Property Value

IBowireCatalogueProvider

HasOverride

Whether a UI-driven override is currently active. When false, Provider equals DefaultProvider (the appsettings fallback).

public bool HasOverride { get; }

Property Value

bool

Provider

The active catalogue provider, or null when no provider is configured. Consumers should treat null as "no catalogue" — symmetric with an empty fetch result.

public IBowireCatalogueProvider? Provider { get; }

Property Value

IBowireCatalogueProvider

Methods

SetOverride(IBowireCatalogueProvider?)

Replace the active provider — used by the Settings → Catalogue providers UI (#309) to hot-swap at runtime. Pass null to fall back to DefaultProvider.

public void SetOverride(IBowireCatalogueProvider? overrideProvider)

Parameters

overrideProvider IBowireCatalogueProvider