private MasterVoteServerLogic()
        {
            Client = new OnPoolClient.OnPoolClient();
            Client.SetSerializerSettings(new JsonSerializerSettings
            {
                TypeNameHandling = TypeNameHandling.All,
                Converters       = new List <JsonConverter>()
                {
                    new ObjectIdJsonConverter(),
                    new StringEnumConverter()
                },
                ContractResolver = new CamelCasePropertyNamesContractResolver()
            });
            Client.ConnectToServer(ConfigurationManager.AppSettings["onPoolServer"]);
            Client.JoinPool("VotePool").OnMessage((from, message, respond) =>
            {
                switch (message.Method)
                {
                case "AddVote":
                    {
                        var result = message.GetJson <GameVoteMessage>();
                        GameManager.AddVote(result.Vote);
                        respond(null);
                        break;
                    }

                default:
                    respond(null);
                    break;
                }
            });
            GameManager = new GameManager();
            gameTick(null);
        }
Beispiel #2
0
        private void BuildClient(Action <OnPoolClient.OnPoolClient> ready)
        {
            var c = new OnPoolClient.OnPoolClient();

            connectedClients.Add(c);
            c.ConnectToServer("127.0.0.1");
            ready(c);
        }
        private VoteServerLogic()
        {
            GameManager = new GameManager();

            Client = new OnPoolClient.OnPoolClient();
            Client.SetSerializerSettings(new JsonSerializerSettings
            {
                TypeNameHandling = TypeNameHandling.All,
                Converters       = new List <JsonConverter>()
                {
                    new ObjectIdJsonConverter(),
                    new StringEnumConverter()
                },
                ContractResolver = new CamelCasePropertyNamesContractResolver()
            });
            Client.ConnectToServer(ConfigurationManager.AppSettings["onPoolServer"]);
            Client.JoinPool("VotePool").OnMessage((from, message, respond) =>
            {
                switch (message.Method)
                {
                case "AddVote":
                    {
                        var result = message.GetJson <GameVoteMessage>();
                        GameManager.AddVote(result.Vote);
                        respond(null);
                        break;
                    }

                case "StopVote":
                    {
                        GameManager.Locked = true;
                        respond(null);
                        break;
                    }

                case "NewRound":
                    {
                        var messageRound      = message.GetJson <NewRoundMessage>();
                        GameManager.GameState = messageRound.State;
                        GameManager.Reset();
                        Console.WriteLine("Got new round: " + messageRound.State.Generation);
                        GameManager.Locked = false;
                        respond(null);
                        break;
                    }
                }
            });
        }