From 110f8c77dd086d76c71c765e87987fc29f2c5a39 Mon Sep 17 00:00:00 2001 From: Moonbase Date: Fri, 21 Nov 2025 16:15:15 -0800 Subject: [PATCH] Fix Contacts Status' Not Updating Implement Room User Count SQL SCHEMA CHANGE `ALTER TABLE Rooms ADD COLUMN UserCount INT(32) NOT NULL;` --- qtc-net-server/Hubs/ChatHub.cs | 20 ++++++++++++++++++++ qtc-net-server/Models/Room.cs | 1 + 2 files changed, 21 insertions(+) diff --git a/qtc-net-server/Hubs/ChatHub.cs b/qtc-net-server/Hubs/ChatHub.cs index 052efbf..27840ae 100644 --- a/qtc-net-server/Hubs/ChatHub.cs +++ b/qtc-net-server/Hubs/ChatHub.cs @@ -113,6 +113,7 @@ namespace qtc_api.Hubs if (res != null && res.Success && res.Data != null) { await Clients.All.SendAsync("RefreshUserLists"); + await Clients.All.SendAsync("RefreshContactsList"); Log($"Status Was Set To {res.Data.Status} On User {user.Username}"); } else @@ -134,7 +135,14 @@ namespace qtc_api.Hubs Log($"User {user.Username} Has Joined {room.Name}"); user.CurrentRoomId = room.Id; + + ServiceResponse dbRoomRes = await _roomService.GetRoom(room.Id); + Room? dbRoom = dbRoomRes?.Data; + + if(dbRoom != null) dbRoom.UserCount += 1; + await _dataContext.SaveChangesAsync(); + await Clients.All.SendAsync("RefreshRoomList"); } [HubMethodName("JoinRoomGuest")] @@ -148,6 +156,11 @@ namespace qtc_api.Hubs await Groups.AddToGroupAsync(Context.ConnectionId, room.Data.Id); await Clients.Group(room.Data.Id).SendAsync("GuestJoin", username); + + room.Data.UserCount += 1; + await _dataContext.SaveChangesAsync(); + + await Clients.All.SendAsync("RefreshRoomList"); } } @@ -165,7 +178,14 @@ namespace qtc_api.Hubs Log($"User {user.Username} Has Left {room.Name}"); user.CurrentRoomId = string.Empty; + + ServiceResponse dbRoomRes = await _roomService.GetRoom(room.Id); + Room? dbRoom = dbRoomRes?.Data; + + if (dbRoom != null) dbRoom.UserCount -= 1; + await _dataContext.SaveChangesAsync(); + await Clients.All.SendAsync("RefreshRoomList"); } [HubMethodName("SendMessage")] diff --git a/qtc-net-server/Models/Room.cs b/qtc-net-server/Models/Room.cs index d3108fd..ac80f9f 100644 --- a/qtc-net-server/Models/Room.cs +++ b/qtc-net-server/Models/Room.cs @@ -6,5 +6,6 @@ public string Name { get; set; } = string.Empty; public string CreatorId { get; set; } = string.Empty; public DateTime CreatedAt { get; set; } = new DateTime(); + public int UserCount { get; set; } = 0; } }