Esempio n. 1
0
    public void uploadHighScore()
    {
        int newHighScore = GameCode.highScore;

        HighScoreRequest highscoreRequest = new HighScoreRequest
        {
            score = GameCode.highScore
        };

        ResponseModel responseModel = new ResponseModel();

        StartCoroutine(HttpUtil.Post(HttpUtil.leaderBoardUrl, JsonUtility.ToJson(highscoreRequest), (response) =>
        {
            responseModel = JsonUtility.FromJson <ResponseModel>(response.downloadHandler.text);
            if (responseModel.isSuccessful || responseModel.successful)
            {
                Debug.Log("HighScore updated to server");
            }
            else
            {
                Debug.Log("this is the message: " + responseModel.message);
            }
        }));

        Debug.Log("Uploading Highscore to database");
    }
        public async Task <ActionResult <HighScore> > PostHighScore([FromBody] HighScoreRequest request)
        {
            if (_context.Database.CanConnect())
            {
                if (request == null)
                {
                    return(BadRequest(new { success = false, message = "Body cannot be empty." }));
                }
                try
                {
                    var currentUser = await _context.Users.FirstOrDefaultAsync(u => u.Id == request.UserId);

                    if (currentUser == null)
                    {
                        return(NotFound(new { success = false, message = "User not found." }));
                    }

                    var highScore = new HighScore
                    {
                        Score         = request.Score,
                        DateSubmitted = DateTime.Now,
                        Username      = currentUser.Email,
                        User          = currentUser
                    };

                    _context.HighScores.Add(highScore);
                    await _context.SaveChangesAsync();

                    var response = new HighScoreResponse
                    {
                        Id       = highScore.Id,
                        Score    = highScore.Score,
                        Username = highScore.Username
                    };

                    return(Ok(response));
                }
                catch (Exception exception)
                {
                    return(BadRequest(exception.ToString()));
                }
            }
            else
            {
                return(StatusCode(StatusCodes.Status503ServiceUnavailable, new
                {
                    message = "The database is currently unavailable."
                }));
            }
        }