public List <Fixture> GetTeamHomeFixturesForCurrentSeason(int teamId) { if (teamId <= 0) { throw new InvalidOperationException("Parameter teamId must be greater than or equal to zero"); } List <int> teamLeagueIdsCurrentSeasonList = GetTeamLeagueIdsForCurrentSeason(); return((from f in fixtureRepository.GetQueryable() where teamLeagueIdsCurrentSeasonList.Contains(f.HomeTeamLeague.Id) && f.HomeTeamLeague.Team.Id == teamId orderby f.FixtureDate select f).ToList <Fixture>()); // List<TeamLeague> teamLeagueCurrentSeasonList = GetTeamLeaguesForCurrentSeason(); // List teamLeagueIdList = new ArrayList(); // foreach (TeamLeague tl in teamLeagueCurrentSeasonList) // teamLeagueIdList.Add(tl.Id.ToString()); // ICriteria criteria = Session.CreateCriteria(typeof(Fixture)) // .AddOrder(Order.Asc("FixtureDate")) // .CreateAlias("HomeTeamLeague", "htl") // .Add(Expression.In("htl.Id", teamLeagueIdList)) // .Add(Expression.Eq("htl.Team.Id", teamId)); // return criteria.List<Fixture>(); }