コード例 #1
0
        public async Task <IActionResult> GetScoreboardForLevelConfiguration(
            [HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = "Scoreboard/{LevelConfigurationId}")] HttpRequest req, ILogger log, Guid levelConfigurationId)
        {
            log.LogInformation("C# HTTP trigger function(DeleteScoreboard) processed a request.");

            try
            {
                var accessTokenResult = _tokenProvider.ValidateToken(req);
                if (accessTokenResult.Status != AccessTokenStatus.Valid)
                {
                    return(new UnauthorizedResult());
                }

                Guid userAccountId = new Guid(accessTokenResult.Principal.Claims.First(c => c.Type == "UserAccount").Value);

                var scoreboardRepo = new ScoreboardRepository();
                var scores         = scoreboardRepo.GetScoreboardForLevelConfiguration(levelConfigurationId);

                return(new OkObjectResult(scores));
            }
            catch (Exception exception)
            {
                return(new BadRequestObjectResult(exception.Message));
            }
        }
コード例 #2
0
        public async Task <IActionResult> CreateScoreboardEntry(
            [HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = "Scoreboard/CreateScoreboardEntry")] HttpRequest req, ILogger log)
        {
            log.LogInformation("C# HTTP trigger function(CreateScoreboardEntry) processed a request.");

            try
            {
                var accessTokenResult = _tokenProvider.ValidateToken(req);
                if (accessTokenResult.Status != AccessTokenStatus.Valid)
                {
                    return(new UnauthorizedResult());
                }

                Guid userAccountId = new Guid(accessTokenResult.Principal.Claims.First(c => c.Type == "UserAccount").Value);

                string requestBody           = await new StreamReader(req.Body).ReadToEndAsync();
                var    scoreboardCreateModel = JsonConvert.DeserializeObject <ScoreboardCreateModel>(requestBody);

                var scoreboard = new Scoreboard()
                {
                    UserAccountId        = userAccountId,
                    LevelConfigurationId = scoreboardCreateModel.LevelConfigurationId,
                    Score = scoreboardCreateModel.Score
                };

                var scoreboardRepo = new ScoreboardRepository();
                var newId          = scoreboardRepo.CreateScoreboard(scoreboard);

                return(new OkObjectResult($"Score logged."));
            }
            catch (Exception exception)
            {
                return(new BadRequestObjectResult(exception.Message));
            }
        }
コード例 #3
0
        public List <ScoreboardDTO> SelectScoreboardData(string difficulty, int category, string timeSpan)
        {
            List <ScoreboardDTO> scoreboard = new List <ScoreboardDTO>();
            var scoreboardDTO = ScoreboardRepository.SelectScoreboardData(difficulty, category, timeSpan);

            foreach (var DTO in scoreboardDTO)
            {
                scoreboard.Add(new ScoreboardDTO(DTO));
            }
            return(scoreboard);
        }
コード例 #4
0
 public ScoreboardService(IOptions <RedisSettings> redisSettings, IOptions <ScoreboardMongoDbSettings> mongoDbSettings)
 {
     scoreboardMongoRepository = new ScoreboardRepository(mongoDbSettings);
     scoreboardRedisStack      = new ScoreboardStack(redisSettings);
 }