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(); } }