/// <summary> /// Get Leader Board Details with Name . /// </summary> /// <param name="leaderBoardName"></param> /// <returns></returns> public IEnumerator GetLeaderBoardWithName(string leaderBoardName) { //if result is active. if (LeaderBoardDetailsPanel.activeInHierarchy) { LeaderBoardDetailsPanel.SetActive(false); } // if (!string.IsNullOrEmpty(LeaderBoardResult.text)) LeaderBoardResult.text = string.Empty; //activate loding panel . LeaderBoardLoadinPanel.SetActive(true); //Url need to heat . const string url = "https://long-run.herokuapp.com/LeaderBoard"; //var create json. var leaderBoardDetails = new LeaderBoardDetails(leaderBoardName); //convert to json. var json = JsonUtility.ToJson(leaderBoardDetails); //debug. Debug.Log("Print json" + json); //update json. json = json.Replace("'", "\""); //Encode the JSON string into a bytes var postData = System.Text.Encoding.UTF8.GetBytes(json); //create headers. //Add keys an values . var headers = new Dictionary <string, string> { { "Content-Type", "application/json" } }; //Now call a new WWW request var www = new WWW(url, postData, headers); //Yield return www . yield return(www); //deacctivate loding panel . LeaderBoardLoadinPanel.SetActive(false); //check for error. //Registered success fully. if (string.IsNullOrEmpty(www.error)) { var receivedData = JSON.Parse(www.text)["User"]; Debug.Log(receivedData); //var modifiledData = "Name" + " " + "Joe Games Currency"+" "+"Emailid"; SetLeaderBoardResult(receivedData); } else { var receivedData = www.error; Debug.Log("Data" + receivedData); SetLeaderBoardResult(receivedData); } www.Dispose(); }
/// <summary> /// Gets the leader board details. /// </summary> /// <param name="result">The result.</param> /// <returns></returns> private List <LeaderBoardDetails> GetLeaderBoardDetails(List <JobStatusModel> result) { var groupedUsers = result.GroupBy(x => x.AppliedBy).ToList(); var byTotalViews = groupedUsers.OrderByDescending(m => m.Count()).ToList(); List <LeaderBoardDetails> leaderBoard = new List <LeaderBoardDetails>(); foreach (var user in groupedUsers) { LeaderBoardDetails leaderBoardObject = new LeaderBoardDetails(); leaderBoardObject.name = user.Key; leaderBoardObject.Rank = byTotalViews.FindIndex(x => x.Key == user.Key) + 1; leaderBoardObject.submissions = user.Count(); leaderBoard.Add(leaderBoardObject); } return(leaderBoard); }