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