コード例 #1
0
        public ActionResult Index()
        {
            var model = new GameStartViewModel {
                GameId = Guid.NewGuid()
            };

            return(View(model));
        }
コード例 #2
0
 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 }));
 }
コード例 #3
0
        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;
            }
        }
コード例 #4
0
 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
         });
     }
 }
コード例 #5
0
        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
                });
            }
        }