public LeaderboardResponse GetLeaderboard(LeaderboardRequest request) { var session = SessionRepository.RetrieveSession(request.SessionId); if (session == null) { return(new LeaderboardResponse { Success = false, ErrorMessage = "InvalidSessionId", }); } var result = new LeaderboardResponse(); var top = UserRepository.RetrieveTopLeaderboard(10, session.UserId); result.Top10 = top.Select(LeaderboardResponseEntry.FromModel).ToArray(); var contenders = UserRepository.RetrieveLocalLeaderboard(session.UserId, 2); result.Contenders = contenders.Select(LeaderboardResponseEntry.FromModel).ToArray(); result.Ranking = contenders.Where(c => c.IsCurrentUser).Select(c => c.Position).First(); return(result); }
public void Refresh(Action<Response<LeaderboardScores>> userCallback) { if (_needsRefresh && !_isLoading && _canLoadMoreScores) { _needsRefresh = false; if (_page == 1) { _canLoadMoreScores = true; } LeaderboardRequest request = new LeaderboardRequest(_scope, _page, _scoresPerPage); _latestRequest = request; Action<Response<LeaderboardScores>> callback = (response) => { this.RefreshCallback(response, request); if (userCallback != null) { userCallback(response); } }; _mogadeManager.GetLeaderboard(_leaderboardId, _scope, _page, _scoresPerPage, callback); _isLoading = true; } }
public LeaderboardResponse GetLeaderboard([FromBody] LeaderboardRequest request) { var response = new LeaderboardResponse(); try { using (var connection = GetConnection()) { connection.Open(); using (var command = new SqlCommand("GetCategoryLeaderboard", connection)) { command.CommandType = System.Data.CommandType.StoredProcedure; command.Parameters.AddWithValue("@catId", request.CategoryId); command.Parameters.AddWithValue("@compId", request.CompetitionId); using (var reader = command.ExecuteReader()) { var leaderboard = ReadLeaderboard(reader); leaderboard.CompetitionId = request.CompetitionId; response.Leaderboard = leaderboard; } } } } catch { response.ApiResponseCode = ApiResponseCode.InternalError; } return(response); }
private string CreateSummary(LeaderboardRequest leaderboardRequest) { return($"{leaderboardRequest.ActorType}s" + $" sorted by {leaderboardRequest.LeaderboardType}" + $" of {leaderboardRequest.EvaluationDataCategory}" + $" with key {leaderboardRequest.Key}" + $" of type {leaderboardRequest.EvaluationDataType}" + $" of {leaderboardRequest.CriteriaScope}"); }
public async Task <IActionResult> Update([FromBody] LeaderboardRequest leaderboard) { if ((await _authorizationService.AuthorizeAsync(User, leaderboard.GameId, HttpContext.ScopeItems(ClaimScope.Game))).Succeeded) { var leaderboardModel = leaderboard.ToModel(); _leaderboardController.Update(leaderboardModel); return(Ok()); } return(Forbid()); }
public async Task <IActionResult> Create([FromBody] LeaderboardRequest newLeaderboard) { if ((await _authorizationService.AuthorizeAsync(User, newLeaderboard.GameId, HttpContext.ScopeItems(ClaimScope.Game))).Succeeded) { var leaderboard = newLeaderboard.ToModel(); _leaderboardController.Create(leaderboard); var leaderboardContract = leaderboard.ToContract(); return(new ObjectResult(leaderboardContract)); } return(Forbid()); }
public override void ExecuteLeaderboardRequest(LeaderboardRequest request) { LeaderboardListRequest listRequest = request as LeaderboardListRequest; if (RecordManager.Instance.DisableBestRecords && listRequest?.SubmitScore == true && listRequest?.MissionID == GameplayState.MissionToLoad) { SubmitFieldProperty.SetValue(listRequest, false, null); } base.ExecuteLeaderboardRequest(request); }
public override void ExecuteLeaderboardRequest(LeaderboardRequest request) { LeaderboardListRequest listRequest = request as LeaderboardListRequest; if (listRequest?.SubmitScore == true && listRequest?.MissionID == TargetMissionID) { ReflectedTypes.SubmitFieldProperty.SetValue(listRequest, false, null); TargetMissionID = null; } base.ExecuteLeaderboardRequest(request); }
public override void ExecuteLeaderboardRequest(LeaderboardRequest request) { if (request is LeaderboardListRequest listRequest && listRequest.SubmitScore && listRequest.MissionID == TargetMissionID) { if (SubmitScoreProperty == null) { SubmitScoreProperty = typeof(LeaderboardListRequest).GetProperty("SubmitScore"); } SubmitScoreProperty.SetValue(listRequest, false, null); TargetMissionID = null; } base.ExecuteLeaderboardRequest(request); }
public static Leaderboard ToModel(this LeaderboardRequest leaderboardContract) { return(new Leaderboard { GameId = leaderboardContract.GameId.Value, Name = leaderboardContract.Name, Token = leaderboardContract.Token, EvaluationDataCategory = leaderboardContract.EvaluationDataCategory.Value, EvaluationDataKey = leaderboardContract.Key, ActorType = leaderboardContract.ActorType.Value, EvaluationDataType = leaderboardContract.EvaluationDataType.Value, CriteriaScope = leaderboardContract.CriteriaScope.Value, LeaderboardType = leaderboardContract.LeaderboardType.Value }); }
public static void GetLeaderboard(int id, int from, int count, System.Action <bool, Leaderboard> callback) { var cache = GetLeaderboardFromCache(id); if (cache == null) { var post = new LeaderboardRequest(); post.id = id; post.from = from; post.count = count; DownloadData <Leaderboard>("league-get-leaderboard.php", post, (success, data) => callback(success, success ? AddToChache(id, data) : new Leaderboard())); } else { callback(true, cache); } }
public void LoadNextPage(Action<Response<LeaderboardScores>> userCallback) { if (!_isLoading && _canLoadMoreScores) { LeaderboardRequest request = new LeaderboardRequest(_scope, _page, _scoresToLoad); ; _latestRequest = request; Action<Response<LeaderboardScores>> callback = (response) => { this.LoadPageCallback(response, request); if (userCallback != null) { userCallback(response); } }; _isLoading = true; _mogadeManager.GetLeaderboard(_leaderboardId, _scope, _page, _scoresToLoad, callback); _page++; } }
// Use this for initialization void Start() { productId = 43; sharksDestroyedCount = 0; leaderboardId = 6; bombsLeft = 30; avatar_url = "http://www.avatarist.com/avatars/Cartoons/Family-Guy/Brian-small.gif"; lang = "ar"; // Change to Arabic levelId = 1; Currency = GameObject.Find("Currency").guiText; BombCounter = GameObject.Find("BombCounter").guiText; Debug.Log("Grabbing User Info"); userGet = new UserInfoRequest(UserSessionUtils.getApiKey(), productId); Debug.Log("Grabbing Product Info"); product = new ProductInfoRequest(UserSessionUtils.getApiKey(), productId); product_result = product.doGetInfo(); userGet_result = userGet.doGetInfo(); Debug.Log("User ID: " + userGet.id); userPut = new UserInfoRequest(UserSessionUtils.getApiKey(), userGet.id, avatar_url, lang); Debug.Log("Getting Leaderboard Info"); leaderboard = new LeaderboardRequest(UserSessionUtils.getApiKey(), leaderboardId); leaderboard_result = leaderboard.doGetInfo(); Debug.Log("Leaderboard Result: " + leaderboard_result); Debug.Log("Are we gonna print it?"); foreach (string key in leaderboard.user_results.Keys) { Debug.Log("User Results Key: " + key + ", User Results Value: " + leaderboard.user_results[key]); } // Debug.Log ("Sending User Options Info"); // userUpdate = new PostUserOptionsRequest(UserSessionUtils.getApiKey(), user.id, productId, "GG", "NNN"); // userUpdate.postUserInfo("update"); Debug.Log("Sending User Update Info"); mode = "avatar"; userPut_result = userPut.putUserInfo(mode); Debug.Log("User Put Result for Avatar: " + userPut_result); mode = "lang"; userPut_result = userPut.putUserInfo(mode); Debug.Log("User Put Result for Lang: " + userPut_result); }
// TODO public object Any(LeaderboardRequest request) { return(new LeaderboardResponse { Players = new List <Player> (new[] { new Player { Name = "player 1", Rank = 1, AvatarUrl = "https://avatars.slack-edge.com/2015-11-02/13730672677_12e63b2676006e35c8c8_48.jpg" }, new Player { Name = "player 2", Rank = 2, AvatarUrl = "https://avatars.slack-edge.com/2015-07-28/8334572082_cf32aaa303e81fe38acf_48.jpg" }, new Player { Name = "player 3", Rank = 3, AvatarUrl = "https://avatars.slack-edge.com/2015-03-25/4191418419_0439e15604a6180d161b_48.jpg" } }) }); }
private void RefreshCallback(Response<LeaderboardScores> response, LeaderboardRequest request) { if (!request.Equals(_latestRequest)) { return; } _isLoading = false; if (response.Success) { _scores.Clear(); for (int i = 0; i < response.Data.Scores.Count; i++) { _scores.Add(response.Data.Scores[i]); } if (response.Data.Scores.Count < request.Records) { _canLoadMoreScores = false; } } }
private void LoadPageCallback(Response<LeaderboardScores> response, LeaderboardRequest request) { // If the leaderboard has been resetted ( thus, leaderboard is not loading ) or the response is not the response to the latest request, // do not proceed nor update data with this response if (!_isLoading || !request.Equals(_latestRequest)) { return; } _isLoading = false; if (response.Success) { _scores.Capacity = Math.Max(_scores.Capacity, _scores.Count + response.Data.Scores.Count); for (int i = 0; i < response.Data.Scores.Count; i++) { _scores.Add(response.Data.Scores[i]); } if (response.Data.Scores.Count < request.Records) { _canLoadMoreScores = false; } } }
public void CreateLeaderboardAsync(LeaderboardRequest leaderboard, Action <LeaderboardResponse> onSuccess, Action <Exception> onError) { AsyncRequestController.EnqueueRequest(() => CreateLeaderboard(leaderboard), onSuccess, onError); }
/// <summary> /// Create a new Leaderboard. /// </summary> /// <param name="game"><see cref="EvaluationCreateRequest"/> object that holds the details of the new leaderboard request.</param> /// <returns>A <see cref="GameResponse"/> containing the new leaderboard details.</returns> public LeaderboardResponse CreateLeaderboard(LeaderboardRequest leaderboard) { var query = GetUriBuilder(ControllerPrefix + "leaderboards/create").ToString(); return(Post <LeaderboardRequest, LeaderboardResponse>(query, leaderboard)); }