public IReadOnlyList <ILeagueMatch> FindAll(ILeagueTeam leagueTeam) { const string sql = @" SELECT league_match_id as leaguematchid, league_id as leagueid, home_match_team_id as homematchleagueteamid, away_match_team_id as awaymatchleagueteamid, match_created_time as matchcreatedtime, match_start_time as matchstarttime, match_finish_time as matchfinishtime, match_results as matchesults, match_results_reported_time as matchesultsreportedtime FROM public.league_match WHERE league_team_id = @LeagueTeamId" ; using (var connection = AppDataConnection.Create()) { var records = connection.Query <LeagueMatchRecord>(sql, new { leagueTeam.LeagueTeamId }).ToList(); var leagueTeamIds = records.SelectMany(x => new[] { x.AwayLeagueTeamId, x.HomeLeagueTeamId }).ToList(); var leagueTeamsByLeagueTeamId = new LeagueTeamStore().Find(leagueTeamIds).ToDictionary(x => x.LeagueTeamId, x => x); return(records.Select(record => Create(record, leagueTeamsByLeagueTeamId)).ToList()); } }
public LeagueTeamViewModel Create(ILeagueTeam leagueTeam) { return(new LeagueTeamViewModel { TeamId = leagueTeam.Team.TeamId, Name = leagueTeam.Team.Name, }); }