// GET: Teams public ActionResult Index(int?id) { var viewModel = new TeamIndexData(); viewModel.Teams = db.Teams .Include(t => t.SubTeams); if (id != null) { ViewBag.TeamID = id.Value; viewModel.SubTeams = viewModel.Teams.Where( i => i.TeamID == id.Value).Single().SubTeams; } return(View(viewModel)); }
public async Task OnGetAsync(int?id, int?coachID) { TeamData = new TeamIndexData(); TeamData.Teams = await _context.Teams .Include(i => i.SoccerAssignment) .Include(i => i.GameAssignments) .ThenInclude(i => i.Coach) .ThenInclude(i => i.DepartmentID) /* .Include(i => i.GameAssignments) * .ThenInclude(i => i.Coach) * .ThenInclude(i => i.Enrollments) * .ThenInclude(i => i.Player) * .AsNoTracking()*/ .OrderBy(i => i.LastName) .ToListAsync(); if (id != null) { TeamID = id.Value; Team team = TeamData.Teams .Where(i => i.ID == id.Value).Single(); TeamData.Coaches = team.GameAssignments.Select(s => s.Coach); } if (coachID != null) { CoachID = coachID.Value; var selectedCoach = TeamData.Coaches .Where(x => x.CoachID == coachID).Single(); await _context.Entry(selectedCoach).Collection(x => x.Enrollments).LoadAsync(); foreach (Enrollment enrollment in selectedCoach.Enrollments) { await _context.Entry(enrollment).Reference(x => x.Player).LoadAsync(); } TeamData.Enrollments = selectedCoach.Enrollments; } }