Exemple #1
0
        public async Task <IEnumerable <TeamPlayByPlay> > GetSummarisedStats(
            NflfastrQueryParameter queryParameter,
            CancellationToken cancellationToken)
        {
            _logger.LogInformation($"Started method {nameof(GetSummarisedStats)}");

            var plays = await _playByPlayRepository.GetPlayByPlaysAsync(
                queryParameter.Season,
                queryParameter.Team,
                cancellationToken).ToArrayAsync(cancellationToken);

            var playsByKey = plays
                             .GroupBy(x => x.ToPlayKey())
                             .ToDictionary(k => k.Key, x => new TeamPlayByPlay(x.Key, x.ToList()));

            _logger.LogInformation($"Finished method {nameof(GetSummarisedStats)}");

            return(playsByKey.Select(x => x.Value));
        }
Exemple #2
0
        public async Task <ActionResult <IEnumerable <TeamPlayByPlay> > > GetPlayByPlays(
            [FromQuery] NflfastrQueryParameter queryParameter,
            CancellationToken cancellationToken)
        {
            var errors = queryParameter.Validate();

            if (errors.Count > 0)
            {
                return(BadRequest(new ValidationProblemDetails(errors)
                {
                    Title = "There are errors with your request.",
                    Status = StatusCodes.Status400BadRequest
                }));
            }

            var plays = await _nflfastrService.GetSummarisedStats(queryParameter, cancellationToken);

            _tracer.ActiveSpan.SetTags(
                HttpContext.Request.GetDisplayUrl(),
                HttpContext.Connection.RemoteIpAddress.MapToIPv6().ToString());

            return(Ok(plays));
        }