Пример #1
0
        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));
        }
Пример #2
0
        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));
        }