Exemplo n.º 1
0
        public IActionResult RollDice(int gameId)
        {
            var viewModel = new LudoViewModel();

            //hämtar ett värde ifrån api tärningen
            var client  = new RestClient("http://localhost:52858/api"); //LOCALHOST PÅ VÅRT API NÄR VI STARTAT UPP DET!!!
            var request = new RestRequest("ludo/{gameId}", Method.PUT);

            request.AddUrlSegment("gameId", gameId); // replaces matching token in request.Resource

            IRestResponse <PutGame> ludoGameResponse = client.Execute <PutGame>(request);

            //kontrollerar om ett fel skickats från API:et
            if (ludoGameResponse.StatusCode != System.Net.HttpStatusCode.OK)
            {
                //Modelstate är en mvc model
                //validerings summary visas på skärmen
                ModelState.AddModelError("", ludoGameResponse.Content.Replace("\"", ""));
            }
            else
            {
                viewModel.Dice = ludoGameResponse.Data.diece;
            }

            var x = GetSpeficifGameFromAPi(gameId);

            viewModel.CurrentGame = x;

            //"Index" för att få samma utseende som index metoden
            return(View("Index", viewModel));
        }
Exemplo n.º 2
0
        public IActionResult Index()
        {
            logger.LogInformation(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> get all games");

            /* test för utskrift
             * SpecificGame result = new SpecificGame()
             * {
             *  currentPlayer = new Player()
             *  {
             *      Name = "test"
             *  }
             * };*/

            //skapar en viewModel
            var viewModel = new LudoViewModel();
            //få alla spel som ett objekt och inte int
            IEnumerable <int> allGameIds = GetGamesFromAPI();

            //skapa en tom lista för alla spel
            viewModel.AllGames = new List <Game>();

            //hämtar alla spel ifrån API
            foreach (var gameId in allGameIds)
            {
                viewModel.AllGames.Add(GetSpeficifGameFromAPi(gameId));
            }

            //för att de ska få en ickeexisterande färg, drop down alltid tom
            viewModel.ColorPlayer1 = -1;
            viewModel.ColorPlayer2 = -1;
            viewModel.ColorPlayer3 = -1;
            viewModel.ColorPlayer4 = -1;

            //en klass som skicka in i view
            return(View(viewModel));
        }
Exemplo n.º 3
0
        public IActionResult CreateNewGame(LudoViewModel viewModel)
        {
            //var client = new RestClient("http://localhost:52858/api");

            //var request = new RestRequest("ludo/", Method.POST);
            //request.AddJsonBody();//lägg till det som är i creategae så man kan skapa spel

            List <Player> players = new List <Player>();

            if (viewModel.ColorPlayer1 != -1)
            {
                players.Add(new Player()
                {
                    PlayerColor = viewModel.ColorPlayer1
                });
            }
            if (viewModel.ColorPlayer2 != -1)
            {
                players.Add(new Player()
                {
                    PlayerColor = viewModel.ColorPlayer2
                });
            }
            if (viewModel.ColorPlayer3 != -1)
            {
                players.Add(new Player()
                {
                    PlayerColor = viewModel.ColorPlayer3
                });
            }
            if (viewModel.ColorPlayer4 != -1)
            {
                players.Add(new Player()
                {
                    PlayerColor = viewModel.ColorPlayer4
                });
            }

            //här sker det när AddPlayerToGame fångar fel
            try
            {
                //skapa spelet i api
                int gameId = CreateGameUsingApi();

                //lägg till spelare
                foreach (var player in players)
                {
                    AddPlayerToGame(gameId, player.PlayerColor);
                }

                //hämtar spelet ifrån api
                viewModel.CurrentGame = GetSpeficifGameFromAPi(gameId);
            }
            catch (Exception ex)
            {
                //AddModelError = en metod som lägger till ett specefik fel i fel listan.
                //ModelState = en klass i MVC ramverket. som använder AddModelError metoden.
                //tar medelande och tar bort "".
                ModelState.AddModelError("", ex.Message.Replace("\"", ""));
            }

            //"Index" för att få samma utseende som index metoden
            return(View("Index", viewModel));
        }