示例#1
0
        public async Task TwoMatches_GetFilteredMatcehs_ReturnsCorrectMatch(FilterMatchDto filter)
        {
            var goodMatch = new Match
            {
                HomeTeam       = "home-team",
                GuestTeam      = "guest-team",
                MatchType      = MatchType.Qualifying,
                AvailableSeats = 12,
                TicketPrice    = 12.2f
            };
            var badMatch = new Match
            {
                HomeTeam       = "bad-team",
                GuestTeam      = "bad-team",
                MatchType      = MatchType.Round1,
                AvailableSeats = 99,
                TicketPrice    = 99.2f
            };

            await AddMatch(goodMatch);
            await AddMatch(badMatch);

            var response = await _client.PostAsync(filteredMatchesRoute, JsonContent.Create(filter));

            response.StatusCode.Should().Be(HttpStatusCode.OK);
            var foundMatches = await response.Content.ReadAsAsync <IEnumerable <Match> >();

            foundMatches.Should().ContainSingle();
            foundMatches.First().Should().Be(goodMatch);
        }
        public ActionResult <IEnumerable <Match> > GetFilteredMatcehs(FilterMatchDto filter)
        {
            var matches = _matchRepo.GetAll();

            return(Ok(matches
                      .Where(m => m.Id == (filter.Id ?? m.Id))
                      .Where(m => m.HomeTeam.ToLower().Contains((filter.HomeTeam ?? "").ToLower()))
                      .Where(m => m.GuestTeam.ToLower().Contains((filter.GuestTeam ?? "").ToLower()))
                      .Where(m => m.MatchType == (filter.MatchType ?? m.MatchType))
                      .Where(m => m.TicketPrice == (filter.TicketPrice ?? m.TicketPrice))
                      .Where(m => m.AvailableSeats == (filter.AvailableSeats ?? m.AvailableSeats))
                      .ToList()));
        }