Squirrowse/Squirrowse.Service/Hubs/StreamManager.cs

51 lines
1.4 KiB
C#

using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Squirrowse.Core.Models;
namespace Squirrowse.Service.Hubs
{
public class StreamManager : IStreamManager
{
private readonly List<User> _users = new List<User>(); //temporary
public Task AddUser(string connectionId, string userName, ConnectionType type)
{
_users.Add(new User(connectionId, userName, type));
return Task.CompletedTask;
}
public Task RemoveUserbyConnectionId(string connectionId)
{
_users.Remove(_users.First(user => user.ConnectionId == connectionId));
return Task.CompletedTask;
}
public Task RemoveUserByUserName(string userName)
{
_users.RemoveAll(user => user.AgentName == userName);
return Task.CompletedTask;
}
public IEnumerable<User> getServerSideUsers()
{
return _users.Where(user => user.UserType == ConnectionType.Server);
}
public IEnumerable<User> getClientSideUsers()
{
return _users.Where(user => user.UserType == ConnectionType.Client);
}
public bool CheckUser(string userName)
{
return _users.Any(user => user.AgentName == userName);
}
public IEnumerable<User> getAllUsers()
{
var t = _users;
return _users;
}
}
}