using System.Collections.Concurrent;

namespace AsbCloudWebApi.SignalR.Services;

public class ConnectionManagerService
{
   private readonly ConcurrentDictionary<int, string> connections = new();

   public void AddOrUpdateConnection(int userId, string connectionId)
   {
      connections.AddOrUpdate(userId, connectionId,
         (key, existingConnectionId) => connectionId);
   }

   public void RemoveConnection(int userId)
   {
      connections.TryRemove(userId, out _);
   }

   public string? GetConnectionIdByUserId(int userId)
   {
      connections.TryGetValue(userId, out var connectionId);
      return connectionId;
   }
}