public async Task <HttpResponseData> Get( [HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "results")] HttpRequestData req) { // Anonymous access is allowed // Get all players of current user var results = await playerResultTable.Get(); // Add data from player and user var responseResult = new List <ResultsGetDto>(results.Count); foreach (var item in results) { var player = await playerTable.GetSingle(Guid.Parse(item.RowKey)); if (player == null) { continue; } var user = await usersTable.GetSingle(player !.Creator); responseResult.Add(new(Guid.Parse(item.RowKey), item.Name, item.LastMeasurement, item.AvgNumberOfShots, item.StdDev, player?.GitHubUrl, user?.NickName, user?.PublicTwitter, user?.PublicUrl)); } responseResult = responseResult.OrderBy(r => r.AvgNumberOfShots).ToList(); return(await CreateResponse(req, responseResult)); }
public async Task <HttpResponseData> Get( [HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "players")] HttpRequestData req) { // Verify authenticated user is present var subject = await authorize.TryGetSubject(req.Headers); if (subject == null) { return(req.CreateResponse(HttpStatusCode.Unauthorized)); } // Get and return all players of current user var players = mapper.Map <List <Player>, List <PlayerGetDto> >(await playerTable.Get(p => p.Creator == subject)); var results = await playerResultTable.Get(); var resultingPlayers = players.Select(p => { var result = results.FirstOrDefault(r => r.RowKey == p.Id.ToString()); if (result != null) { return(p with { LastMeasurement = result.LastMeasurement, AvgNumberOfShots = result.AvgNumberOfShots, StdDev = result.StdDev }); } return(p); }).ToList(); return(await CreateResponse(req, resultingPlayers)); }
public async Task <HttpResponseData> Get( [HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "results")] HttpRequestData req) { // Anonymous access is allowed // Get and return all players of current user var results = mapper.Map <List <PlayerResult>, List <ResultsGetDto> >(await playerResultTable.Get()); results = results.OrderBy(r => r.AvgNumberOfShots).ToList(); return(await CreateResponse(req, results)); }