namespace FrameworkBLL.Dashboard { // ============================================================ // IDashboardHubNotifier — abstraction over DashboardHub SignalR push. // // Concrete implementation (DashboardHubNotifier) lives in FrameworkSL, wrapping // IHubContext. Keeps FrameworkBLL free of ASP.NET/SignalR // assembly types — same pattern as ISysJobHubNotifier/SysJobHubNotifier. // // This only helps a BLL class running IN FrameworkSL's own process. A BLL class in a // different host (Accounts/Analytics/Compliance, each its own process) cannot reach // DashboardHub via DI at all — no shared container, same class of constraint documented for // ISysJobHubNotifier's own NoOp fallback on other hosts. Those hosts must call the new // POST /Dashboard/NotifyDataChanged endpoint over HTTP instead (see FrameworkSL's // Endpoints/Dashboard/NotifyDataChanged.cs) — not implemented as an internal HttpClient bridge // yet, flagged as the concrete next step once a real trigger (e.g. Compliance's // AlertCheckSubscriber) is wired to call it. // // Registration in FrameworkSL Program.cs: // services.AddSingleton(); // ============================================================ public interface IDashboardHubNotifier { Task NotifyDataChangedAsync(int clientId, string datasetKey, int? ouId); } }