public HttpResponseMessage GetDayMatches(string seasonId, string dayId) { RequestHelper.ValidateId(seasonId); var game = GetGameFromSeasonId(seasonId); DateTime matchDay = ValidateAndParseMatchDay(dayId); var matchService = ServiceFactory.CreateMatchService(game); var matches = matchService.GetBySeasonAndDate(seasonId, matchDay).ToList(); if (!matches.Any()) { throw ResponseHelper.Get404NotFound($"No matches found for seasonId '{seasonId}' and dayId '{dayId}'"); } var matchResources = matches.Select(GetMatchResource).ToList(); // Add a link to play the match day if it is the next one. var nextMatchDay = matchService.GetNextMatchDay(seasonId); bool addLinkToNextMatchDay = matchDay.Equals(nextMatchDay); var links = new SeasonDayMatchesLinks(seasonId, dayId, addLinkToNextMatchDay); var dayMatches = new SeasonDayMatchesResource(matchResources, links); var response = GetResponse(dayMatches); return response; }
public SeasonDayMatchesResource(List<MatchResource> matches, SeasonDayMatchesLinks links) : base(links) { Matches = matches; }