// GET: MixtapesCompositions
        //public async Task<IActionResult> Index()
        //{
        //    var musicOnContext = _context.MixtapesCompositions.Include(m => m.Composition).Include(m => m.MixTape);
        //    return View(await musicOnContext.ToListAsync());
        //}

        //// GET: MixtapesCompositions/Details/5
        //public async Task<IActionResult> Details(Guid? id)
        //{
        //    if (id == null)
        //    {
        //        return NotFound();
        //    }

        //    var mixtapesCompositions = await _context.MixtapesCompositions
        //        .Include(m => m.Composition)
        //        .Include(m => m.MixTape)
        //        .FirstOrDefaultAsync(m => m.MixTapeId == id);
        //    if (mixtapesCompositions == null)
        //    {
        //        return NotFound();
        //    }

        //    return View(mixtapesCompositions);
        //}

        // GET: MixtapesCompositions/Create
        public async Task <IActionResult> Create(Guid id)
        {
            if (id == null)
            {
                return(NotFound("id==null"));
            }

            var mixtape = await _context.MixTape.FindAsync(id);

            if (mixtape == null)
            {
                return(NotFound("mixtape == null"));
            }

            MixtapesCompositions mixtapesCompositions = new MixtapesCompositions
            {
                MixTape   = mixtape,
                MixTapeId = mixtape.MixTapeId
            };

            CompositionSongs compositionSongs = new CompositionSongs(await _context.Composition.Include(c => c.Song).Where(c => c.MixtapesCompositions.Where(m => m.MixTapeId == id).Count() == 0).ToListAsync());

            ViewData["CompositionId"] = new SelectList(compositionSongs.Compositions, "CompositionId", "Song");
            return(View(mixtapesCompositions));
        }
        public async Task <IActionResult> Create([Bind("MixTapeId,CompositionId")] MixtapesCompositions mixtapesCompositions)
        {
            if (ModelState.IsValid)
            {
                _context.Add(mixtapesCompositions);
                await _context.SaveChangesAsync();

                return(RedirectToAction("Details", "MixTapes", new { id = mixtapesCompositions.MixTapeId }));
            }
            ViewData["CompositionId"] = new SelectList(_context.Composition.Include(c => c.Song), "CompositionId", "Song.Title", mixtapesCompositions.CompositionId);
            var mixtape = await _context.MixTape.FindAsync(mixtapesCompositions.MixTapeId);

            mixtapesCompositions.MixTape = mixtape;
            //ViewData["MixTapeId"] = new SelectList(_context.MixTape, "MixTapeId", "Title", mixtapesCompositions.MixTapeId);
            return(View(mixtapesCompositions));
        }