示例#1
0
        public async Task <IActionResult> CreateGame(CreateGameViewModel model)
        {
            var game = new Game
            {
                ID         = _repo.GetNewId(),
                Name       = model.Name,
                AdminToken = _repo.GetNewId()
            };

            await _repo.UpdateGame(game);

            return(RedirectToAction("Index", "Admin", new { game.ID, game.AdminToken }));
        }
示例#2
0
        public async Task <IActionResult> Register(PlayerRegisteringViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View("PlayerRegistering", model));
            }

            var game = await _repo.GetGame(model.GameID);

            var player = game.Players.SingleOrDefault(p => p.ID == model.PlayerID);

            if (player == null)
            {
                player = new Player {
                    ID = _repo.GetNewId()
                };
                game.Players.Add(player);
            }

            player.Name   = model.Name;
            player.Symbol = model.Symbol;
            player.Color  = model.ColorCode;
            player.Fact   = model.Fact;
            player.FactID = _repo.GetNewId();

            await _repo.UpdateGame(game);

            var hasCookie = Request.Cookies.ContainsKey("FactGameGame" + model.GameID);

            if (!hasCookie)
            {
                var cookieOptions = new CookieOptions
                {
                    HttpOnly = true,
                    Expires  = DateTime.Now.AddYears(1),
                    Secure   = Request.IsHttps
                };

                Response.Cookies.Append("FactGameGame" + model.GameID, player.ID, cookieOptions);
            }

            TempData["fg-player-registered"] = true;

            return(RedirectToAction("Index", "Player", new { id = model.GameID }));
        }