//returns questions grouped by student name and subject public async Task <List <QuestionGroup> > GetGroupedQuestionsForTeacher(string userName) { List <Question> questions = await _context.Question.Where(q => q.TeacherName.Equals(userName)).ToListAsync(); var groupedQuestions = questions.Where(q => q.TeacherName.Equals(userName)).GroupBy(q => new { q.StudentName, q.SubjectTitle }); List <QuestionGroup> questionGroups = new List <QuestionGroup>(); foreach (var group in groupedQuestions) { QuestionGroupKey questionGroupKey = new QuestionGroupKey { SubjectTitle = group.Key.SubjectTitle, Name = group.Key.StudentName }; List <Question> questionGroupQuestions = new List <Question>(); foreach (var item in group) { questionGroupQuestions.Add(item); } questionGroups.Add(new QuestionGroup { Key = DecryptGroupedQuestionsKey(questionGroupKey), Questions = questionGroupQuestions }); } return(questionGroups); }
private QuestionGroupKey DecryptGroupedQuestionsKey(QuestionGroupKey questionGroupKey) { QuestionGroupKey decrypted = questionGroupKey; decrypted.Name = Encryptor.Decrypt(decrypted.Name); return(decrypted); }