Files
Radicade/Server/Matchmaking/MatchmakingRuntimeState.cs
2026-10-16 23:33:13 -07:00

29 lines
788 B
C#

using Microsoft.EntityFrameworkCore;
using RadicadeServer.DB;
namespace RadicadeServer.Utils;
public static class MatchmakingRuntimeState
{
public static async Task ResetAsync(RecDBContext db)
{
var presences = await db.Presences.Where(p => p.isOnline).ToListAsync();
foreach (var presence in presences)
{
presence.isOnline = false;
presence.roomInstance = null;
}
var broadcastingEvents = await db.PlayerEvents
.Where(ev => ev.BroadcastingRoomInstanceId != null).ToListAsync();
foreach (var ev in broadcastingEvents)
ev.BroadcastingRoomInstanceId = null;
db.RoomInstances.RemoveRange(await db.RoomInstances.ToListAsync());
await db.SaveChangesAsync();
}
}