public ActionResult Index() { var model = new GameStartViewModel { GameId = Guid.NewGuid() }; return(View(model)); }
public ActionResult Index(GameStartViewModel model) { if (!ModelState.IsValid) { return(View(model)); } //TODO Save the game to a database return(RedirectToAction("PlacePieces", new { id = model.GameId })); }
public GameStart(string aRouteId, ClimbMode aClimbMode) { routeId = aRouteId; climbMode = aClimbMode; InitializeComponent(); // pass cvsBoulderRouteVideos and _routeId to the view model viewModel = gridContainer.DataContext as GameStartViewModel; if (viewModel != null) { CollectionViewSource cvsVideos = gridContainer.Resources["cvsRouteVideos"] as CollectionViewSource; viewModel.SetCvsVideos(cvsVideos); viewModel.SetRouteId(aRouteId); viewModel.SetClimbMode(aClimbMode); viewModel.SetYearListFirstItem("yyyy"); viewModel.SetMonthListFirstItem("mm"); viewModel.SetDayListFirstItem("dd"); viewModel.SetHourListFirstItem(new FilterHourViewModel { Hour = -1, HourString = "time" }); } // pass this Page to the top row user control so it can use this Page's NavigationService navHead.ParentPage = this; // set titles Title = "Just Climb - Game Start"; WindowTitle = Title; string headerRowTitleFormat = "{0} Route {1} - Video Playback"; switch (climbMode) { case ClimbMode.Training: navHead.HeaderRowTitle = string.Format(headerRowTitleFormat, "Training", TrainingRouteDataAccess.TrainingRouteNoById(routeId)); break; case ClimbMode.Boulder: default: navHead.HeaderRowTitle = string.Format(headerRowTitleFormat, "Bouldering", BoulderRouteDataAccess.BoulderRouteNoById(routeId)); break; } }
public JsonResult StartGame(int id = 0) { if (id > 0) { var game = db.Games.Where(x => x.steamId == id).First(); var user = db.SteamUsers.Where(x => x.games.Any(g => g.id == game.id) && x.inUse == false).FirstOrDefault(); if (user != null) { var output = new GameStartViewModel(); output.exe = game.exe; output.steamId = game.steamId; output.username = user.username; output.password = Decrypt(user.password); user.inUse = true; user.inUseBy = db.Computers.Find(1); db.SaveChanges(); return(new JsonResult() { Data = output, JsonRequestBehavior = JsonRequestBehavior.AllowGet }); } else { return new JsonResult() { Data = "no users available", JsonRequestBehavior = JsonRequestBehavior.AllowGet } }; } else { return(new JsonResult() { Data = "more poop", JsonRequestBehavior = JsonRequestBehavior.AllowGet }); } }
public JsonResult checkout(string computer_key, string current_time, int security_code = 0, int id = 0) { // List of checks to verify that a user can be checked out // computer key exists - done // computer key is enabled - done // computer key does not have another game checked out - done // time is within given parameters // game exists // user with game is available if (id > 0) { var computer = db.Computers.Where(x => x.key == computer_key).FirstOrDefault(); if (computer != null) // computer key exists check { if (computer.authorized == false) // computer authorized check { var output = new StatusViewModel(); output.status = "failed"; output.message = "computer not authorized. please contact administrator"; return(new JsonResult() { Data = output, JsonRequestBehavior = JsonRequestBehavior.AllowGet }); } if (db.SteamUsers.Where(x => x.inUseBy.id == computer.id).Count() > 0) // no users already checked out check { var output = new StatusViewModel(); output.status = "failed"; output.message = "This computer already has a user checked out. please contact administrator"; return(new JsonResult() { Data = output, JsonRequestBehavior = JsonRequestBehavior.AllowGet }); } var time = Convert.ToDateTime(current_time); if (CheckTime(current_time)) { var game = db.Games.Where(x => x.steamId == id).First(); var user = db.SteamUsers.Where(x => x.games.Any(g => g.id == game.id) && x.inUse == false).FirstOrDefault(); if (user != null) { var output = new GameStartViewModel(); output.exe = game.exe; output.steamId = game.steamId; output.name = game.name; output.username = user.username; output.password = encryption.Decrypt(user.password); output.password = encryption.Decrypt(output.password, user.salt); output.status = "ok"; user.inUse = true; user.inUseBy = db.Computers.Where(x => x.key == computer_key).FirstOrDefault(); db.SaveChanges(); return(new JsonResult() { Data = output, JsonRequestBehavior = JsonRequestBehavior.AllowGet }); } else { var output = new StatusViewModel(); output.status = "failed"; output.message = "no users available"; return(new JsonResult() { Data = output, JsonRequestBehavior = JsonRequestBehavior.AllowGet }); } } else { var output = new StatusViewModel(); output.status = "failed"; output.message = "request timing is off"; return(new JsonResult() { Data = output, JsonRequestBehavior = JsonRequestBehavior.AllowGet }); } } else { var output = new StatusViewModel(); output.status = "failed"; output.message = "computer not authorized. please contact administrator"; return(new JsonResult() { Data = output, JsonRequestBehavior = JsonRequestBehavior.AllowGet }); } } else { return(new JsonResult() { Data = "invalid game request", JsonRequestBehavior = JsonRequestBehavior.AllowGet }); } }