forked from ddrilling/AsbCloudServer
Степанов Дмитрий Александрович
635e4cd7fc
1. Поправил обновление отправленных уведомлений. 2. Поправил ConnectionManager. Переименовал сервис, удалил абстракцию, так как предполагается только одна реализация. 3. При маппинге из dto в сущность для уведомления добавил игнорирование категории и пользователя. 4. Изменил жизенный цикл зависимости для отправителя. 5. Добавил в репозиторий метод для обновления коллекции уведомлений. 6. Поправил Hub, Id пользователя можно получать внутри хаба. 7. Поправил NotificationRequest + метод BuildQuery в NotificationRepository
25 lines
596 B
C#
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;
|
|
}
|
|
} |