Пример #1
0
        public IActionResult Move(string token, [FromBody] Coordinate coordinate)
        {
            var spelOrError = GetGameOrError(token);

            if (!(spelOrError is Spel))
            {
                return((IActionResult)spelOrError);
            }

            Spel   spel         = (Spel)spelOrError;
            string decodedToken = Base64UrlEncoder.Decode(token);
            bool   isPlayer1    = spel.Speler1Token == decodedToken;
            bool   isTurn       = (spel.Speler1Beurt && isPlayer1) || (!spel.Speler1Beurt && !isPlayer1);

            if (!isTurn)
            {
                return(StatusCode(401, "Not your turn."));
            }

            if (!spel.Afgelopen())
            {
                spel.DoeZet(coordinate.X, coordinate.Y);
            }
            _spelService.UpdateSpel(spel);

            return(Ok());
        }