public ActionResult Details(int?id) { int userId = Convert.ToInt32(Session["userId"]); if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Game game = db.Games.Find(id); if (game == null) { return(HttpNotFound()); } ViewBag.joined = false; DuckLab.ViewModels.GameViewModel theGame = new ViewModels.GameViewModel(); theGame.game = game; foreach (GameUser user in game.GameUsers) { if (user.userId == userId) { ViewBag.joined = true; } DuckLab.ViewModels.Player player = new ViewModels.Player(); player.name = user.User.firstName + " " + user.User.lastName; player.gameBalance = Convert.ToDouble(user.availableBalance); foreach (UserStock stock in db.UserStocks.Where(x => x.gameId == id && x.userId == user.userId)) { decimal stockPrice = stock.Company.CompanyStocks.OrderByDescending(x => x.stockTime).FirstOrDefault().stockPrice *stock.quantityPurchased ?? 0; player.gameBalance += Convert.ToDouble(stockPrice); } theGame.Players.Add(player); } return(View(theGame)); }
public GamePage(Topic topic) { InitializeComponent(); BindingContext = new ViewModels.GameViewModel(topic); }
public GameView(ViewModels.GameViewModel dataContext) { this.DataContext = dataContext; InitializeComponent(); }
public ActionResult Details(int?id) { if (Session["userId"] == null) { return(RedirectToAction("Login", "Users")); } int userId = Convert.ToInt32(Session["userId"]); if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Game game = db.Games.Find(id); if (game == null) { return(HttpNotFound()); } ViewBag.joined = false; DuckLab.ViewModels.GameViewModel theGame = new ViewModels.GameViewModel(); theGame.game = game; foreach (GameUser user in game.GameUsers) { if (user.userId == userId) { ViewBag.joined = true; } DuckLab.ViewModels.Player player = new ViewModels.Player(); player.name = user.User.firstName + " " + user.User.lastName; player.gameBalance = Convert.ToDouble(user.availableBalance); foreach (UserStock stock in db.UserStocks.Where(x => x.gameId == id && x.userId == user.userId)) { decimal stockPrice = stock.Company.CompanyStocks.OrderByDescending(x => x.stockTime).FirstOrDefault().stockPrice *stock.quantityPurchased ?? 0; player.gameBalance += Convert.ToDouble(stockPrice); } theGame.Players.Add(player); } DuckLab.ViewModels.Player winningPlayer = theGame.Players.OrderByDescending(x => x.gameBalance).First(); ViewBag.winningPlayer = winningPlayer.name; if (game.gameStatus.Trim() == "Active") { if (game.gameType == "Timed") { if (game.endDate < DateTime.Now) { game.gameStatus = "Finished"; db.Entry(game).State = EntityState.Modified; db.SaveChanges(); } } else if (game.gameType == "Profit Goal") { if ((double)game.profitGoal < winningPlayer.gameBalance) { game.gameStatus = "Finished"; db.Entry(game).State = EntityState.Modified; db.SaveChanges(); } } } return(View(theGame)); }