OnlineClientManagerExtensions.cs 1.1 KB

123456789101112131415161718192021222324252627282930313233
  1. using System.Linq;
  2. using JetBrains.Annotations;
  3. namespace Abp.RealTime
  4. {
  5. /// <summary>
  6. /// Extension methods for <see cref="IOnlineClientManager"/>.
  7. /// </summary>
  8. public static class OnlineClientManagerExtensions
  9. {
  10. /// <summary>
  11. /// Determines whether the specified user is online or not.
  12. /// </summary>
  13. /// <param name="onlineClientManager">The online client manager.</param>
  14. /// <param name="user">User.</param>
  15. public static bool IsOnline(
  16. [NotNull] this IOnlineClientManager onlineClientManager,
  17. [NotNull] UserIdentifier user)
  18. {
  19. return onlineClientManager.GetAllByUserId(user).Any();
  20. }
  21. public static bool Remove(
  22. [NotNull] this IOnlineClientManager onlineClientManager,
  23. [NotNull] IOnlineClient client)
  24. {
  25. Check.NotNull(onlineClientManager, nameof(onlineClientManager));
  26. Check.NotNull(client, nameof(client));
  27. return onlineClientManager.Remove(client.ConnectionId);
  28. }
  29. }
  30. }