private StudentEditViewModel GetStudentViewModel(int Id) { studentId = Id; var student = _studentDAO.FetchAllRecords().SingleOrDefault(s => s.Id == studentId); var studentQuests = _ownedQuestStudentDAO.FetchAllRecords().Where(q => q.StudentId == student.Id).ToList(); var quests = _questDAO.FetchAllRecords(); var ownedStudentQuests = quests .Join(studentQuests, q => q.Id, s => s.QuestId, (q, s) => new OwnedQuestStudent { Id = s.Id, StudentId = s.StudentId, QuestId = s.QuestId, CompletionStatus = s.CompletionStatus, Name = q.Name, Cost = q.Cost }) .OrderBy(q => q.CompletionStatus) .ToList(); var classrooms = _classroomDAO.FetchAllRecords().Where(c => c.Id == student.ClassID).ToList(); var groups = _groupDAO.FetchAllRecords().Where(g => g.Id == student.GroupID).ToList(); var studentEVM = new StudentEditViewModel { Id = student.Id, CredentialID = student.CredentialID, ClassID = student.ClassID, GroupID = student.GroupID, FirstName = student.FirstName, LastName = student.LastName, Wallet = student.Wallet, Classrooms = classrooms, Groups = groups, OwnedStudentQuests = ownedStudentQuests }; return(studentEVM); }