public static async Task <TArgs> AddAndBroadcast <TArgs>(TArgs msg) where TArgs : IRtcmMsg { IRtcmMsg addedMsg; List <String> domains; switch (msg.Header.EventCode) { case CtrlMsgType.WM_CTRL_MSG_EVENT_CALLSTART: EventCallStartMsg callStartMsg = msg as EventCallStartMsg; addedMsg = CircuitsMsgHandler.AddNewMsg(callStartMsg); domains = Caching.GetDomains(addedMsg.Header.SiteId); await _circuitsHub.Clients.Groups(domains).BroadcastAddCallStartMsg(addedMsg); break; case CtrlMsgType.WM_CTRL_MSG_EVENT_CALLEND: EventCallEndMsg callEndMsg = msg as EventCallEndMsg; addedMsg = CircuitsMsgHandler.AddNewMsg(callEndMsg); domains = Caching.GetDomains(addedMsg.Header.SiteId); await _circuitsHub.Clients.Groups(domains).BroadcastAddCallEndMsg(addedMsg); break; default: throw new ArgumentException($"Message type {msg.Header.EventCode} not supported"); } return((TArgs)addedMsg); }
public static TArgs AddMessage <TArgs>(TArgs msg) where TArgs : IRtcmMsg { return(CircuitsMsgHandler.AddNewMsg(msg)); }