Exemple #1
0
        public IActionResult GetAllGradesByExamId(Guid exam_Id)
        {
            EnsureArg.IsNotEmpty(exam_Id);

            var query       = new GetAllGradesByExamIdQuery(exam_Id);
            var queryResult =
                QueryDispatcher.Execute <GetAllGradesByExamIdQuery, GetAllGradesByExamIdQueryResult>(query);

            return(Ok(queryResult.Grades));
        }
Exemple #2
0
        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"
                           ));
            }
        }