TourIAm/TIAMWebApp/Server/Services/AcWebSignalRHubWithSessionB...

43 lines
1.8 KiB
C#

using AyCode.Blazor.Components.Services;
using AyCode.Core.Loggers;
using AyCode.Services.Server.SignalRs;
using AyCode.Services.SignalRs;
using TIAM.Database.DataLayers.Users;
using TIAM.Services;
using TIAM.Services.Server.Logins;
namespace TIAMWebApp.Server.Services;
public class AcWebSignalRHubWithSessionBase<TSignalRTags, TLogger>(IConfiguration configuration, UserDal userDal, SessionService sessionService, TLogger logger)
: AcWebSignalRHubBase<TSignalRTags, TLogger>(configuration, logger) where TSignalRTags : AcSignalRTags where TLogger : AcLoggerBase//Hub<ISignalRHubItemServer>, IAcSignalRHubServer
{
protected readonly UserDal UserDal = userDal;
protected SessionService SessionService = sessionService;
public override async Task OnConnectedAsync()
{
await base.OnConnectedAsync();
SessionService.Sessions.TryAdd(Context.ConnectionId, new SessionItem(Context.ConnectionId, new LoginService(UserDal, Configuration)));
Logger.Info($"_sessionService.Sessions count: {SessionService.Sessions.Count}");
////insert or update them into database.
//var CId = _context.UserIdToCId.Find(userId);
//CId.ConnectionId = connectionid;
//_context.Update(CId);
//await _context.SaveChangesAsync();
//await base.OnConnectedAsync();
////await Groups.AddToGroupAsync(Context.ConnectionId, "SignalR Users");
}
public override async Task OnDisconnectedAsync(Exception? exception)
{
await base.OnDisconnectedAsync(exception);
if (SessionService.Sessions.TryRemove(Context.ConnectionId, out var sessionItem)) sessionItem.LoginService.Logout();
Logger.Info($"_sessionService.Sessions count: {SessionService.Sessions.Count}");
//await Groups.RemoveFromGroupAsync(Context.ConnectionId, "SignalR Users");
}
}