// GET: Listeners public async Task <IActionResult> Index(int?id , string bandID) { var viewModel = new RatingIndexData(); viewModel.Listeners = await _context.Listeners .Include(i => i.BandsListeners) .ThenInclude(i => i.Band) .OrderBy(i => i.Name) .ToListAsync(); if (id != null) { ViewData["ListenerID"] = id.Value; Listener listener = viewModel.Listeners.Where( i => i.ListenerID == id.Value).Single(); viewModel.BandsListeners = listener.BandsListeners; } if (bandID != "" && bandID != null) { ViewData["BandID"] = bandID; var selectedBand = viewModel.BandsListeners.Where(b => b.BandID == bandID).Single().Band; await _context.Entry(selectedBand).Collection(b => b.Tours).LoadAsync(); foreach (Tour t in selectedBand.Tours) { await _context.Entry(t).Reference(i => i.Band).LoadAsync(); } viewModel.Tours = selectedBand.Tours; } return(View(viewModel)); }
// GET: BandListeners public async Task <IActionResult> Index(int?id , string bandID) { var viewModel = new RatingIndexData(); viewModel.Listeners = await _context.Listeners .Include(i => i.BandsListeners) .ThenInclude(i => i.Band) //Include(i => i.Listener) //.AsNoTracking() .OrderBy(i => i.Name) .ToListAsync(); if (id != null) { ViewData["ListenerID"] = id.Value; Listener listener = viewModel.Listeners.Where( i => i.ListenerID == id.Value).Single(); viewModel.Bands = listener.BandsListeners.Select(s => s.Band); } if (bandID != null) { ViewData["BandID"] = bandID; //.Value; viewModel.Tours = viewModel.Bands.Where( x => x.BandID == bandID).Single().Tours; } return(View(viewModel)); /* * var musicContext = _context.BandsListeners.Include(b => b.Band).Include(b => b.Listener); * return View(await musicContext.ToListAsync()); */ }