DD.WellWorkover.Cloud/AsbCloudWebApi/SignalR/Services/ConnectionManagerService.cs
Степанов Дмитрий Александрович 635e4cd7fc Правки после ревью
1. Поправил обновление отправленных уведомлений.
2. Поправил ConnectionManager. Переименовал сервис, удалил абстракцию, так как предполагается только одна реализация.
3. При маппинге из dto в сущность для уведомления добавил игнорирование категории и пользователя.
4. Изменил жизенный цикл зависимости для отправителя.
5. Добавил в репозиторий метод для обновления коллекции уведомлений.
6. Поправил Hub, Id пользователя можно получать внутри хаба.
7. Поправил NotificationRequest + метод BuildQuery в NotificationRepository
2023-07-14 11:40:57 +05:00

25 lines
596 B
C#

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;
}
}