Example #1
0
        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;
            }
        }
Example #3
0
        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);
        }
Example #4
0
 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
     });
 }
Example #11
0
            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);
    }
Example #14
0
 // 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));
        }