/// <summary> /// Close this interface for a specific client. /// </summary> /// <param name="session">The session to close the UI on.</param> /// <exception cref="ArgumentNullException">Thrown if <paramref name="session"/> is null.</exception> public void Close(IPlayerSession session) { if (session == null) { throw new ArgumentNullException(nameof(session)); } if (!_subscribedSessions.Contains(session)) { return; } var msg = new CloseBoundInterfaceMessage(); SendMessage(msg, session); CloseShared(session); }
/// <summary> /// Close this interface for a specific client. /// </summary> /// <param name="session">The session to close the UI on.</param> /// <exception cref="ArgumentNullException">Thrown if <paramref name="session"/> is null.</exception> public void Close(IPlayerSession session) { if (session == null) { throw new ArgumentNullException(nameof(session)); } if (!_subscribedSessions.Contains(session)) { return; } var msg = new CloseBoundInterfaceMessage(); SendMessage(msg, session); OnClosed?.Invoke(new ServerBoundUserInterfaceMessage(msg, session)); _subscribedSessions.Remove(session); }