Пример #1
0
        public ResponeCommMessage HandleEvent(LeaderboardCommMessage msg)
        {
            if (_sessionIdHandler != null)
            {
                var          sortOption = msg.SortedBy;
                List <IUser> userLst;
                switch (sortOption)
                {
                case LeaderboardCommMessage.SortingOption.TotalGrossProfit:
                    userLst = _userService.GetUsersByTotalProfit();
                    break;

                case LeaderboardCommMessage.SortingOption.HighestCashGain:
                    userLst = _userService.GetUsersByHighestCash();
                    break;

                case LeaderboardCommMessage.SortingOption.NumGamesPlayes:
                    userLst = _userService.GetUsersByNumOfGames();
                    break;

                default:
                    return(new ResponeCommMessage(msg.UserId, msg.SessionId, false, msg));
                }
                var leaderboradLines = userLst.ConvertAll(UserToLineData);
                return(new LeaderboardResponseCommMessage(msg.UserId,
                                                          _sessionIdHandler.GetSessionIdByUserId(msg.UserId),
                                                          true, msg, leaderboradLines));
            }
            return(new ResponeCommMessage(msg.UserId, msg.SessionId, false, msg));
        }
Пример #2
0
        public void HandleRawMsgsLeaderBoardGood()
        {
            LeaderboardCommMessage lbcm = new LeaderboardCommMessage(1, -1, LeaderboardCommMessage.SortingOption.HighestCashGain);
            var lineDatas = new List <LeaderboardLineData>
            {
                new LeaderboardLineData(1, "bla", 1000, 10, 20, 12),
                new LeaderboardLineData(1, "blabla", 100, 120, 2, 132),
                new LeaderboardLineData(1, "blablablabla", 10032, 12120, 23, 1432)
            };

            _serverEventHandler = new Mock <IEventHandler>();
            _serverEventHandler.Setup(e => e.HandleEvent(It.IsAny <LeaderboardCommMessage>()))
            .Returns(new LeaderboardResponseCommMessage(lbcm.UserId, lbcm.SessionId, true, lbcm, lineDatas));

            _webEventHandler = new WebEventHandler(_serverEventHandler.Object);

            string expectedResponse = "r{\"?xml\":{\"@version\":\"1.0\"" +
                                      ",\"@encoding\":\"utf-16\"},\"" +
                                      "LeaderboardResponseCommMessage\":{\"@xmlns:xsd\"" +
                                      ":\"http://www.w3.org/2001/XMLSchema\",\"@xmlns:xsi\"" +
                                      ":\"http://www.w3.org/2001/XMLSchema-instance\",\"UserId\"" +
                                      ":\"1\",\"SessionId\":\"-1\",\"Success\":\"true\"," +
                                      "\"OriginalMsg\":{\"@xsi:type\":\"LeaderboardCommMessage\"" +
                                      ",\"UserId\":\"1\",\"SessionId\":\"-1\",\"SortedBy\":" +
                                      "\"HighestCashGain\"},\"Results\":{\"LeaderboardLineData\"" +
                                      ":[{\"Id\":\"1\",\"Name\":\"bla\",\"Points\":\"1000\",\"" +
                                      "TotalGrossProfit\":\"10\",\"HighestCashGain\":\"20\"," +
                                      "\"NumOfGamesPlayed\":\"12\"},{\"Id\":\"1\",\"Name\":" +
                                      "\"blabla\",\"Points\":\"100\",\"TotalGrossProfit\":\"120\"" +
                                      ",\"HighestCashGain\":\"2\",\"NumOfGamesPlayed\":\"132\"},{" +
                                      "\"Id\":\"1\",\"Name\":\"blablablabla\",\"Points\":\"10032\"" +
                                      ",\"TotalGrossProfit\":\"12120\",\"HighestCashGain\":\"23\"" +
                                      ",\"NumOfGamesPlayed\":\"1432\"}]}}}";

            var xml    = _parser.SerializeMsg(lbcm, false);
            var json   = _parser.XmlToJson(xml);
            var result = _webEventHandler.HandleRawMsg(json);

            Assert.NotNull(result);
            Assert.AreEqual(1, result.Count);
            Assert.True(expectedResponse.Equals(result[0]));
        }
Пример #3
0
        public void ParseLeaderboarrdRespTestGood()
        {
            LeaderboardCommMessage     lbcm = new LeaderboardCommMessage(1, -1, LeaderboardCommMessage.SortingOption.HighestCashGain);
            List <LeaderboardLineData> data = new List <LeaderboardLineData>
            {
                new LeaderboardLineData(1, "Oded", 100, 1000, 13, 12),
                new LeaderboardLineData(1, "Jordy", 1000, 10, 130, 11)
            };
            LeaderboardResponseCommMessage response = new LeaderboardResponseCommMessage(1, -1,
                                                                                         true, lbcm, data);
            string msgStr =
                "r{\"?xml\":{\"@version\":\"1.0\",\"@encoding\":\"utf-16\"}," +
                "\"LeaderboardResponseCommMessage\":{\"@xmlns:xsd\":\"http://www.w3.org/2001/XMLSchema\"," +
                "\"@xmlns:xsi\":\"http://www.w3.org/2001/XMLSchema-instance\",\"UserId\":\"1\",\"Success\":\"true\"," +
                "\"OriginalMsg\":{\"@xsi:type\":\"LeaderboardCommMessage\",\"UserId\":\"1\",\"SortedBy\":\"HighestCashGain\"}," +
                "\"Results\":{\"LeaderboardLineData\":[{\"Id\":\"1\",\"Name\":\"Oded\",\"Points\":\"100\",\"TotalGrossProfit\":" +
                "\"1000\",\"HighestCashGain\":\"13\",\"NumOfGamesPlayed\":\"12\"},{\"Id\":\"1\",\"Name\":\"Jordy\",\"Points\":" +
                "\"1000\",\"TotalGrossProfit\":\"10\",\"HighestCashGain\":\"130\",\"NumOfGamesPlayed\":\"11\"}]}}}";
            var parsed = _parser.ParseString(_parser.JsonToXml(msgStr), false);

            Assert.AreEqual(1, parsed.Count);
            Assert.True(response.Equals(parsed[0]));
        }
Пример #4
0
 public ResponeCommMessage HandleEvent(LeaderboardCommMessage msg)
 {
     GotClientToServerMsg(msg);
     return(new ResponeCommMessage(msg.UserId, msg.SessionId, false, msg));
 }