// 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;
            }
        }