//Finds all pieces that are checked out by a given musician.
        public IActionResult Musician(int id)
        {
            //Find everything checked out by a given musician.
            CheckedOut[] checkedOut = (from co in _context.CheckedOut
                                       where co.MusicianId == id
                                       select co).ToArray();

            //Find all the piece information.
            Piece[] pieces = new Piece[checkedOut.Count()];
            for (int i = 0; i < checkedOut.Count(); i++)
            {
                pieces[i] = _context.Piece.Find(checkedOut[i].PartId);
            }

            //Find all of the score information.
            Score[] scores = new Score[pieces.Count()];
            for (int i = 0; i < pieces.Count(); i++)
            {
                scores[i] = _context.Score.Find(pieces[i].ScoreId);
            }

            //Create a new object storing all of the information.
            MusicianAndPieces mAndPs = new MusicianAndPieces {
                Musician = _context.Musician.Find(id), Pieces = pieces, Scores = scores
            };

            return(View(mAndPs));
        }
Пример #2
0
        //GET: CheckIn/CheckIn/1
        //Displays all of the pieces that are checked out by a given musician,
        //and allows the user to select which pieces are being checked in and
        //in what condition they are in.
        public IActionResult CheckIn(int id)
        {
            Musician            musician = _context.Musician.Find(id);
            IEnumerable <Piece> pieces   = from p in _context.Piece
                                           where _context.CheckedOut.Any(e => e.PartId == p.PieceId && e.MusicianId == musician.MusicianId)
                                           select p;

            MusicianAndPieces mAndPs = new MusicianAndPieces()
            {
                Musician = musician,
                Pieces   = pieces.ToArray(),
                Scores   = new Score[pieces.Count()]
            };

            for (int i = 0; i < mAndPs.Scores.Length; i++)
            {
                Piece p = pieces.ElementAt(i);
                mAndPs.Scores[i] = _context.Score.Find(p.ScoreId);
            }



            return(View(mAndPs));
        }