Interface ISupportPresence
Whether anybody is on support right now.
public interface ISupportPresence
Remarks
Advisory, and never a gate. It answers "is somebody likely to see this soon", which changes what a customer expects — not whether they may ask. Nothing on the path that raises a case may wait on this or be refused by it.
Registered only when a support channel and a bot token are configured, so resolve it with
GetService rather than GetRequiredService: absent is the ordinary state for a host that
does not use Slack, and it means the same thing as Unknown — say
nothing.
It lives here, with the contracts, rather than in the support package for the same reason
ISupportCaseService does: a component has to be able to reach it without
Tharga.Team.Blazor taking a dependency on a package that carries a mail stack.
Methods
GetAsync(CancellationToken)
Whether support is reachable, as far as can be told.
Task<SupportPresenceState> GetAsync(CancellationToken cancellationToken = default)
Parameters
cancellationTokenCancellationToken
Returns
Remarks
Never throws and never blocks meaningfully: a transport failure, a rate limit or a missing configuration all come back as Unknown.