Exemplo n.º 1
0
        private string HandleHttp(HttpListenerRequest request, HttpListenerResponse response)
        {
            switch (request.Url.AbsolutePath)
            {
            case "/":
                if (File.Exists("html/index.html"))
                {
                    return(File.ReadAllText("html/index.html"));
                }
                response.Redirect($"http://mtglt.redpoint.games/?url={Uri.EscapeUriString(request.UserHostAddress)}");
                return(null);

            case "/totals.json":
                break;

            case "/names.json":
                return(JsonConvert.SerializeObject(new {
                    player1 = Player_1.GetPlayerName(),
                    player2 = Player_2.GetPlayerName(),
                    player3 = Player_3.GetPlayerName(),
                    player4 = Player_4.GetPlayerName(),
                }));

            case "/set":
                if (request.HasEntityBody)
                {
                    var data = JsonConvert.DeserializeObject <SetRequest>(request.GetRequestPostData());
                    if (data.player == 0)
                    {
                        return(JsonError("Missing key `player`"));
                    }
                    var grid = GetPlayerGrids().ElementAt(data.player - 1);
                    if (!data.commander.HasValue || data.commander == 0)
                    {
                        Dispatcher.Invoke(() => grid.GetLifeButton().LifeTotal += data.change);
                        break;
                    }
                }
                else
                {
                    return(JsonError("POST json not found."));
                }
                break;

            case "/l1":
                return(Player_1.GetLifeButton().LifeTotal.ToString());

            case "/n1":
                return(Player_1.GetPlayerName());

            case "/l2":
                return(Player_2.GetLifeButton().LifeTotal.ToString());

            case "/n2":
                return(Player_2.GetPlayerName());

            case "/l3":
                return(Player_3.GetLifeButton().LifeTotal.ToString());

            case "/n3":
                return(Player_3.GetPlayerName());

            case "/l4":
                return(Player_4.GetLifeButton().LifeTotal.ToString());

            case "/n4":
                return(Player_4.GetPlayerName());

            case "/card.jpg":
            default:
                if (File.Exists("html" + request.Url.AbsolutePath))
                {
                    return(File.ReadAllText("html" + request.Url.AbsolutePath));
                }
                return(JsonError("Wat"));
            }
            return(JsonConvert.SerializeObject(new
            {
                player1 = Player_1.GetLifeButton().LifeTotal,
                player2 = Player_2.GetLifeButton().LifeTotal,
                player3 = Player_3.GetLifeButton().LifeTotal,
                player4 = Player_4.GetLifeButton().LifeTotal
            }));
        }