LeaderboardStatus ToLeaderboardStatus(XmlNode node, ref string errorString) { try { LeaderboardStatus board = null; if (node != null && !string.IsNullOrEmpty(node.InnerXml)) { board = new LeaderboardStatus(); board.Id = node["Id"].InnerText; board.Name = node["Name"].InnerText; board.Comment = node["Comment"].InnerText; board.Country = node["Country"].InnerText; board.Region = node["Region"].InnerText; board.City = node["City"].InnerText; board.GameId = node["GameId"].InnerText; board.ParentLevelId = node["ParentLevelId"].InnerText; bool boolVal = false; bool.TryParse(node["Active"].InnerText, out boolVal); board.Active = boolVal; bool.TryParse(node["Live"].InnerText, out boolVal); board.Live = boolVal; long longVal = -1; List<string> playerUserNames = new List<string>(); XmlNodeList playerNodes = node["PlayerUserNames"].ChildNodes; foreach (XmlNode playerNode in playerNodes) { playerUserNames.Add(playerNode.InnerText); } board.PlayerUserNames = playerUserNames.ToArray(); List<double> scores = new List<double>(); playerNodes = node["Scores"].ChildNodes; foreach (XmlNode playerScoreNode in playerNodes) { scores.Add(Convert.ToDouble(playerScoreNode.InnerText)); } board.Scores = scores.ToArray(); long.TryParse(node["PlayerCountLimit"].InnerText, out longVal); board.PlayerCountLimit = longVal; board.RestrictByDateOfBirthStart = node["RestrictByDateOfBirthStart"].InnerText; board.RestrictByDateOfBirthEnd = node["RestrictByDateOfBirthEnd"].InnerText; if (bool.TryParse(node["UseRestrictByDateOfBirthStart"].InnerText, out boolVal)) { board.UseRestrictByDateOfBirthStart = boolVal; } if (bool.TryParse(node["UseRestrictByDateOfBirthEnd"].InnerText, out boolVal)) { board.UseRestrictByDateOfBirthEnd = boolVal; } board.Reference = node["Reference"].InnerText; int intVal = -1; if (int.TryParse(node["Gender"].InnerText, out intVal)) { board.Gender = intVal; } List<string> availableOnlyToPlayerUserNames = new List<string>(); playerNodes = node["AvailableOnlyToPlayerUserNames"].ChildNodes; foreach (XmlNode playerNode in playerNodes) { availableOnlyToPlayerUserNames.Add(playerNode.InnerText); } board.AvailableOnlyToPlayerUserNames = availableOnlyToPlayerUserNames.ToArray(); board.ClosedTime = node["ClosedTime"].InnerText; board.CreatedTime = node["CreatedTime"].InnerText; board.CurrentTime = node["CurrentTime"].InnerText; long rewardPoints = -1; if (long.TryParse(node["TotalRewardPoints"].InnerText, out rewardPoints)) { board.TotalRewardPoints = rewardPoints; } if (bool.TryParse(node["IsSponsored"].InnerText, out boolVal)) { board.IsSponsored = boolVal; } board.Extras = node["Extras"].InnerText; long topWinnersCount = 0; if (long.TryParse(node["TopWinnersCount"].InnerText, out topWinnersCount)) { board.TopWinnersCount = topWinnersCount; } board.Tag = node["Tag"].InnerText; board.AdminName = node["AdminName"].InnerText; long lifetime = 0; board.LifeTime = lifetime; board.UseAutoClose = false; boolVal = false; if (bool.TryParse(node["UseAutoClose"].InnerText, out boolVal)) { board.UseAutoClose = boolVal; } if (long.TryParse(node["LifeTime"].InnerText, out lifetime)) { board.LifeTime = lifetime; } if (bool.TryParse(node["InviteOnly"].InnerText, out boolVal)) { board.InviteOnly = boolVal; } return board; } } catch (Exception ex) { errorString = ex.Message; } return null; }
void OnGetLeaderboardStatus(string errorString, LeaderboardStatus result, params object[] userParam) { if (string.IsNullOrEmpty(errorString) && result != null) { string[] playerDetails = result.PlayerUserNames; double[] scoreDetails = result.Scores; WinningPlayers.text = "Top " + result.TopWinnersCount.ToString(); if (playerDetails != null && scoreDetails != null) { long length = playerDetails.Length; if (length > 0 && scoreDetails.Length == length) { for (int index = 0; index < length; index++) { if (index < ItemPerPages) { AddItem(LeaderBoardNameLister, playerDetails[index]); AddItem(LeaderBoardScoreLister, scoreDetails[index].ToString()); } } if (m_PageNo > 1) { BackwardButton.interactable = true; } if (length == ItemPerPages + 1) { ForwardButton.interactable = true; } } else { m_PageNo = 1; } } else { m_PageNo = 1; } } else { m_PageNo = 1; } UIStateManager.Manager.SetLoading(false); }