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)); }
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])); }
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])); }
public ResponeCommMessage HandleEvent(LeaderboardCommMessage msg) { GotClientToServerMsg(msg); return(new ResponeCommMessage(msg.UserId, msg.SessionId, false, msg)); }