public static WaitingRoomViewModel Create(BingoContext db) { var calls = (from call in db.BingoCalls where db.BingoCalls.Where(x => x.ValidBoard).Select(x => x.Game.Id).Contains(call.Game.Id) group call by call.Game.Id into game select db.BingoCalls.Where(x => x.Game.Id == game.Key && x.ValidBoard && x.CalledAt == game.Where(y => y.ValidBoard).Min(y => y.CalledAt)).FirstOrDefault() ).Select(x=>x.Id).ToList(); var viewModel = new WaitingRoomViewModel() { Game = db.Games.Where(a => a.InProgress).SingleOrDefault(), BingoCalls = db.BingoCalls.Include("Game").Include("Callee").Where(a=> calls.Contains(a.Id)).ToList() }; return viewModel; }
public static WaitingRoomViewModel Create(BingoContext db) { var calls = (from call in db.BingoCalls where db.BingoCalls.Where(x => x.ValidBoard).Select(x => x.Game.Id).Contains(call.Game.Id) group call by call.Game.Id into game select db.BingoCalls.Where(x => x.Game.Id == game.Key && x.ValidBoard && x.CalledAt == game.Where(y => y.ValidBoard).Min(y => y.CalledAt)).FirstOrDefault() ).Select(x => x.Id).ToList(); var viewModel = new WaitingRoomViewModel() { Game = db.Games.Where(a => a.InProgress).SingleOrDefault(), BingoCalls = db.BingoCalls.Include("Game").Include("Callee").Where(a => calls.Contains(a.Id)).ToList() }; return(viewModel); }