Files
adas-core/adas-core.Application/Services/SubscribersService.cs

52 lines
1.2 KiB
C#

using adas_core.Application.Services.Interfaces;
using adas_core.Application.Subscriptions;
using MongoDB.Bson;
namespace adas_core.Application.Services;
public class SubscribersService : ISubscribersService
{
private readonly List<WsSubscriber> _subscribers = [];
public List<WsSubscriber> GetSubscribers()
{
lock (_subscribers)
{
return _subscribers.ToList();
}
}
public WsSubscriber? GetById(string contextConnectionId)
{
lock (_subscribers)
{
return _subscribers.FirstOrDefault(s => s.Id == contextConnectionId);
}
}
public List<WsSubscriber> GetByPocId(ObjectId pocId)
{
lock (_subscribers)
{
return _subscribers.Where(s => s.LocationIds.Contains(pocId)).ToList();
}
}
public int RemoveConnectionById(string contextConnectionId)
{
lock (_subscribers)
{
return _subscribers.RemoveAll(s => s.Id == contextConnectionId);
}
}
public void AddSubscriber(WsSubscriber subscriber)
{
lock (_subscribers)
{
_subscribers.Add(subscriber);
}
}
}