Example #1
0
        // 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());
             */
        }