Esempio n. 1
0
        private IActionResult PlayerRegistering(Game game)
        {
            var vm = new PlayerRegisteringViewModel
            {
                GameID   = game.ID.ToString(),
                GameName = game.Name
            };

            var hasCookie = Request.Cookies.ContainsKey("FactGameGame" + game.ID);

            if (hasCookie)
            {
                var playerId = Request.Cookies["FactGameGame" + game.ID];

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

                if (player != null)
                {
                    vm.PlayerID  = player.ID;
                    vm.Name      = player.Name;
                    vm.Symbol    = player.Symbol;
                    vm.ColorCode = player.Color;
                    vm.Fact      = player.Fact;
                }
            }

            return(View("PlayerRegistering", vm));
        }
Esempio n. 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 }));
        }