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)); } }
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)); } }
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); }
public ScoreboardService(IOptions <RedisSettings> redisSettings, IOptions <ScoreboardMongoDbSettings> mongoDbSettings) { scoreboardMongoRepository = new ScoreboardRepository(mongoDbSettings); scoreboardRedisStack = new ScoreboardStack(redisSettings); }