public IActionResult GetAllStudentsByExamId(Guid exam_Id) { EnsureArg.IsNotEmpty(exam_Id); var query = new GetAllStudentsByExamIdQuery(exam_Id); var queryResult = QueryDispatcher.Execute <GetAllStudentsByExamIdQuery, GetAllStudentsByExamIdQueryResult>(query); return(Ok(queryResult.Students)); }
public IActionResult GetResultsByExamId(Guid exam_Id) { EnsureArg.IsNotEmpty(exam_Id); var queryStudents = new GetAllStudentsByExamIdQuery(exam_Id); var students = QueryDispatcher.Execute <GetAllStudentsByExamIdQuery, GetAllStudentsByExamIdQueryResult>(queryStudents).Students; var queryGrades = new GetAllGradesByExamIdQuery(exam_Id); var grades = QueryDispatcher.Execute <GetAllGradesByExamIdQuery, GetAllGradesByExamIdQueryResult>(queryGrades).Grades; using (var package = new ExcelPackage()) { var worksheet = package.Workbook.Worksheets.Add("Sheet1"); worksheet.Cells[1, 1].Value = "First name"; worksheet.Cells[1, 2].Value = "Last name"; worksheet.Cells[1, 3].Value = "Grade"; worksheet.Cells[1, 4].Value = "Final grade"; for (int i = 0; i < grades.Count(); i++) { worksheet.Cells[i + 2, 1].Value = students.ElementAt(i).FirstName; worksheet.Cells[i + 2, 2].Value = students.ElementAt(i).LastName; worksheet.Cells[i + 2, 3].Value = grades.ElementAt(i).Value; worksheet.Cells[i + 2, 4].Value = grades.ElementAt(i).FinalGrade; } byte[] fileContents = package.GetAsByteArray(); if (fileContents == null || fileContents.Length == 0) { return(NotFound()); } return(File( fileContents: fileContents, contentType: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", fileDownloadName: "test.xlsx" )); } }