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)); }
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)); }