using RadicadeServer.API.Notifications; using RadicadeServer.RecNet.Enums.Messages; using RadicadeServer.RecNet.Notifications; namespace RadicadeServer.RecNet.Board { public static class CommunityBoardBroadcast { public const string UpdateNotificationId = "CommunityBoardUpdate"; public static IReadOnlyList BuildFrames(CommunityBoard? board) { if (board == null) return Array.Empty(); return new List { new Notification { Id = UpdateNotificationId, Msg = board }, new Notification { Id = NotificationType.CommunityBoardAnnouncementUpdate, Msg = board.CurrentAnnouncement ?? new BoardAnnouncement { Message = string.Empty, MoreInfoUrl = string.Empty } } }; } public static async Task PushAsync(CommunityBoard? board) { foreach (var frame in BuildFrames(board)) await Notify.SendGlobalNotify(frame); } } }