Пример #1
0
        public async Task <IEnumerable <Game> > GetGames(
            ScheduleQueryParameter queryParameter,
            CancellationToken cancellationToken)
        {
            using var scope = _tracer.InitializeTrace(nameof(GetGames));

            scope.LogStart(nameof(GetGames));

            var currentSeason = StringParser.GetCurrentSeason();
            var season        = queryParameter.Season ?? currentSeason;

            var games = await _gameRepository.GetGamesForSeason(season, cancellationToken);

            if (!string.IsNullOrWhiteSpace(queryParameter.Team))
            {
                games = games.Where(x =>
                                    string.Equals(x.HomeTeam, queryParameter.Team, StringComparison.OrdinalIgnoreCase) ||
                                    string.Equals(x.AwayTeam, queryParameter.Team, StringComparison.OrdinalIgnoreCase));
            }

            if (queryParameter.Week != null)
            {
                games = games.Where(x => x.Week == queryParameter.Week);
            }

            scope.LogEnd(nameof(GetGames));

            return(games);
        }