/// <summary> /// The actual game board /// </summary> /// <returns></returns> public ActionResult Game() { var user = Db.Users.Where(a => a.Kerb == User.Identity.Name).SingleOrDefault(); if (user == null) { return RedirectToAction("Index", "Error"); } var message = new Message() {Txt = string.Format("{0} has just joined the game.", user.Name)}; return View(GameViewModel.Create(User.Identity.Name, user.GetBoard())); }
public JsonNetResult CreateMessage(string message) { try { var user = Db.Users.Where(x => x.Kerb == User.Identity.Name).Single(); var msg = new Message() { Txt = message, User = user }; Db.Messages.Add(msg); Db.SaveChanges(); return new JsonNetResult(true); } catch { } return new JsonNetResult(false); }
public JsonNetResult ReportBingo(int id, string userId, List<int> numbers) { var game = Db.Games.Include("GameBalls").Where(x=>x.Id == id).Single(); var user = Db.Users.Where(x=>x.Kerb == userId).Single(); var validBingo = game.ValidateBingo(numbers.ToArray(), user); var call = new BingoCall {CalledAt = DateTime.Now, Callee = user, Game = game, ValidBoard = validBingo}; Db.BingoCalls.Add(call); if (validBingo && game.InProgress) { game.Winner = user; game.InProgress = false; game.EndDate = DateTime.Now; Db.Entry(game).State = EntityState.Modified; } // add in a broadcast var msg = new Message() {Txt = string.Format("{0} has called bingo.", user.Name)}; Db.Messages.Add(msg); if (!validBingo) { var msg2 = new Message() { Txt = string.Format("{0} does not have bingo. Game will continue.", user.Name) }; Db.Messages.Add(msg2); } Db.SaveChanges(); return new JsonNetResult(validBingo); }