public async Task <List <ExamRoomExamPeriodDTO> > ListExamRoomExamPeriod() { ExamProgram currentExamProgram = await ExamProgramService.GetCurrentExamProgram(); ExamRoomExamPeriodFilter filter = new ExamRoomExamPeriodFilter { StudentNumber = CurrentContext.StudentNumber, ExamProgramId = new GuidFilter { Equal = currentExamProgram.Id }, OrderBy = ExamOrder.ExamDate, OrderType = OrderType.ASC }; List <ExamRoomExamPeriod> res = await ExamRoomExamPeriodService.List(filter); return(res.Select(r => new ExamRoomExamPeriodDTO { ExamPeriodId = r.ExamPeriodId, ExamRoomId = r.ExamRoomId, TermId = r.TermId, ExamProgramId = r.ExamProgramId, ExamProgramName = r.ExamProgramName, ExamDate = r.ExamDate.ToString("dd-MM-yyyy"), StartHour = r.StartHour, FinishHour = r.FinishHour, ExamRoomNumber = r.ExamRoomNumber, ExamRoomAmphitheaterName = r.ExamRoomAmphitheaterName, ExamRoomComputerNumber = r.ExamRoomComputerNumber, CurrentNumberOfStudentRegistered = r.Students.Count, SubjectName = r.SubjectName, Errors = r.Errors, }).ToList()); }
public async Task <ExamRoomExamPeriod> Get(ExamRoomExamPeriodFilter filter) { IQueryable <ExamRoomExamPeriodDAO> examRoomExamPeriodDAO = examRegContext.ExamRoomExamPeriod.AsNoTracking(); examRoomExamPeriodDAO = DynamicFilter(examRoomExamPeriodDAO, filter); List <ExamRoomExamPeriod> list = await examRoomExamPeriodDAO.Select(e => new ExamRoomExamPeriod() { ExamProgramId = e.ExamPeriod.ExamProgramId, ExamRoomId = e.ExamRoomId, ExamPeriodId = e.ExamPeriodId, TermId = e.ExamPeriod.TermId, ExamProgramName = e.ExamPeriod.ExamProgram.Name, ExamDate = e.ExamPeriod.ExamDate, StartHour = e.ExamPeriod.StartHour, FinishHour = e.ExamPeriod.FinishHour, SubjectName = e.ExamPeriod.Term.SubjectName, ExamRoomNumber = e.ExamRoom.RoomNumber, ExamRoomAmphitheaterName = e.ExamRoom.AmphitheaterName, ExamRoomComputerNumber = e.ExamRoom.ComputerNumber, Students = e.ExamRegisters.Select(r => new Student { Id = r.StudentId, Username = r.Student.Users.FirstOrDefault().Username, Password = r.Student.Users.FirstOrDefault().Password, StudentNumber = r.Student.StudentNumber, LastName = r.Student.LastName, GivenName = r.Student.GivenName, Birthday = r.Student.Birthday, Email = r.Student.Email }).OrderBy(st => st.GivenName).ToList() }).ToListAsync(); return(list.FirstOrDefault()); }
public async Task <ExamRoomExamPeriod> Get(Guid examRoomId, Guid examPeriodId) { ExamRoomExamPeriodFilter filter = new ExamRoomExamPeriodFilter { ExamPeriodId = new GuidFilter { Equal = examPeriodId }, ExamRoomId = new GuidFilter { Equal = examRoomId } }; return(await UOW.ExamRoomExamPeriodRepository.Get(filter)); }
public async Task <FileResult> ExportStudent(Guid examPeriodId, Guid examRoomId) { ExamRoomExamPeriodFilter filter = new ExamRoomExamPeriodFilter { ExamPeriodId = new GuidFilter { Equal = examPeriodId }, ExamRoomId = new GuidFilter { Equal = examRoomId } }; byte[] data = await ExamRoomExamPeriodService.ExportStudent(filter); return(File(data, "application/octet-stream", "Exam.xlsx")); }
public async Task <FileResult> PrintExamRegisterResult() { ExamProgram currentExamProgram = await ExamProgramService.GetCurrentExamProgram(); ExamRoomExamPeriodFilter filter = new ExamRoomExamPeriodFilter { StudentNumber = CurrentContext.StudentNumber, ExamProgramId = new GuidFilter { Equal = currentExamProgram.Id }, OrderBy = ExamOrder.ExamDate, OrderType = OrderType.ASC }; MemoryStream stream = await ExamRoomExamPeriodService.PrintExamRegisterResult(filter); // Download Word document in the browser return(File(stream, "application/msword", "ExamRegisterResult.docx")); }
public async Task <byte[]> ExportStudent(ExamRoomExamPeriodFilter filter) { // Lấy dữ liệu trong database ExamRoomExamPeriod examRoomExamPeriod = await UOW.ExamRoomExamPeriodRepository.Get(filter); // Mở excelPackage using (ExcelPackage excel = new ExcelPackage()) { // đặt header var examRoomExamPeriodHeaders = new List <string[]>() { new string[] { "Tên kỳ thi", "Tên môn thi", "Mã số phòng thi", "Tên giảng đường", "Số lượng máy tính", "Ngày thi", "Giờ bắt đầu", "Giờ kết thúc", "Số lượng thí sinh đã đăng kí" }, new string[] { examRoomExamPeriod.ExamProgramName, examRoomExamPeriod.SubjectName, examRoomExamPeriod.ExamRoomNumber.ToString(), examRoomExamPeriod.ExamRoomAmphitheaterName, examRoomExamPeriod.ExamRoomComputerNumber.ToString(), examRoomExamPeriod.ExamDate.ToString("dd-MM-yyyy"), examRoomExamPeriod.StartHour.ToString(), examRoomExamPeriod.FinishHour.ToString(), examRoomExamPeriod.Students.Count.ToString() }, new string[] { "STT", "Mã số sinh viên", "Họ", "Tên", "Ngày sinh" } }; // tạo data List <object[]> data = new List <object[]>(); for (int i = 0; i < examRoomExamPeriod.Students.Count; i++) { data.Add(new object[] { i + 1, examRoomExamPeriod.Students[i].StudentNumber, examRoomExamPeriod.Students[i].LastName, examRoomExamPeriod.Students[i].GivenName, examRoomExamPeriod.Students[i].Birthday.ToString("dd-MM-yyyy") }); } // tạo worksheet excel.GenerateWorksheet("Phòng thi - Ca thi", examRoomExamPeriodHeaders, data); // trả về dữ liệu dạng byte return(excel.GetAsByteArray()); } }
public async Task <List <ExamRoomExamPeriod> > List(ExamRoomExamPeriodFilter filter) { return(await UOW.ExamRoomExamPeriodRepository.List(filter)); }
public async Task <MemoryStream> PrintExamRegisterResult(ExamRoomExamPeriodFilter filter) { // Lấy dữ liệu trong database List <ExamRoomExamPeriod> examRoomExamPeriods = await UOW.ExamRoomExamPeriodRepository.List(filter); Student student = await UOW.StudentRepository.Get(new StudentFilter { StudentNumber = new IntFilter { Equal = filter.StudentNumber } }); using (WordDocument document = new WordDocument()) { //Adds new section to the document IWSection section = document.AddSection(); //Adds new paragraph to the section IWParagraph titleParagraph = section.AddParagraph(); //Adds new text to the paragraph IWTextRange textRange = titleParagraph.AppendText("Kết quả đăng ký dự thi"); textRange.CharacterFormat.FontSize = 20; textRange.CharacterFormat.Bold = true; textRange.CharacterFormat.TextColor = Color.DarkBlue; titleParagraph.ParagraphFormat.AfterSpacing = 18f; titleParagraph.ParagraphFormat.BeforeSpacing = 18f; titleParagraph.ParagraphFormat.FirstLineIndent = 10f; titleParagraph.ParagraphFormat.LineSpacing = 10f; titleParagraph.ParagraphFormat.HorizontalAlignment = Syncfusion.DocIO.DLS.HorizontalAlignment.Center; IWParagraph studentNumberParagraph = section.AddParagraph(); studentNumberParagraph.AppendText("Mã số sinh viên: " + student.StudentNumber.ToString()); IWParagraph studentNameParagraph = section.AddParagraph(); studentNameParagraph.AppendText("Họ và tên: " + student.LastName + " " + student.GivenName); IWParagraph studentBirthdayParagraph = section.AddParagraph(); studentBirthdayParagraph.AppendText("Ngày sinh: " + student.Birthday.ToString("dd-MM-yyyy")); IWParagraph studentEmailParagraph = section.AddParagraph(); studentEmailParagraph.AppendText("Email: " + student.Email); string[] tableHeaders = new string[] { "STT", "Tên môn học", "Ngày thi", "Giờ bắt đầu", "Giờ kết thúc", "Phòng thi", "Giảng đường" }; //Adds a new table into Word document IWTable table = section.AddTable(); //Specifies the total number of rows & columns table.ResetCells(examRoomExamPeriods.Count + 1, tableHeaders.Length); table.TableFormat.HorizontalAlignment = RowAlignment.Center; for (int i = 0; i < tableHeaders.Length; i++) { textRange = table[0, i].AddParagraph().AppendText(tableHeaders[i]); textRange.CharacterFormat.Bold = true; } for (int i = 1; i < table.Rows.Count; i++) { table[i, 0].AddParagraph().AppendText(i.ToString()); table[i, 1].AddParagraph().AppendText(examRoomExamPeriods[i - 1].SubjectName); table[i, 2].AddParagraph().AppendText(examRoomExamPeriods[i - 1].ExamDate.ToString("dd-MM-yyyy")); table[i, 3].AddParagraph().AppendText(examRoomExamPeriods[i - 1].StartHour.ToString()); table[i, 4].AddParagraph().AppendText(examRoomExamPeriods[i - 1].FinishHour.ToString()); table[i, 5].AddParagraph().AppendText(examRoomExamPeriods[i - 1].ExamRoomNumber.ToString()); table[i, 6].AddParagraph().AppendText(examRoomExamPeriods[i - 1].ExamRoomAmphitheaterName); } MemoryStream stream = new MemoryStream(); document.Save(stream, FormatType.Docx); //Closes the Word document document.Close(); stream.Position = 0; //Download Word document in the browser return(stream); } }
private IQueryable <ExamRoomExamPeriodDAO> DynamicOrder(IQueryable <ExamRoomExamPeriodDAO> query, ExamRoomExamPeriodFilter filter) { switch (filter.OrderType) { case OrderType.ASC: switch (filter.OrderBy) { case ExamOrder.SubjectName: query = query.OrderBy(q => q.ExamPeriod.Term.SubjectName); break; case ExamOrder.ExamProgramName: query = query.OrderBy(q => q.ExamPeriod.ExamProgram.Name); break; case ExamOrder.ExamDate: query = query.OrderBy(q => q.ExamPeriod.ExamDate); break; case ExamOrder.StartHour: query = query.OrderBy(q => q.ExamPeriod.StartHour); break; default: query = query.OrderBy(q => q.CX); break; } break; case OrderType.DESC: switch (filter.OrderBy) { case ExamOrder.SubjectName: query = query.OrderByDescending(q => q.ExamPeriod.Term.SubjectName); break; case ExamOrder.ExamProgramName: query = query.OrderByDescending(q => q.ExamPeriod.ExamProgram.Name); break; case ExamOrder.ExamDate: query = query.OrderByDescending(q => q.ExamPeriod.ExamDate); break; case ExamOrder.StartHour: query = query.OrderByDescending(q => q.ExamPeriod.StartHour); break; default: query = query.OrderByDescending(q => q.CX); break; } break; default: query = query.OrderBy(q => q.CX); break; } return(query.Skip(filter.Skip).Take(filter.Take)); }
private IQueryable <ExamRoomExamPeriodDAO> DynamicFilter(IQueryable <ExamRoomExamPeriodDAO> query, ExamRoomExamPeriodFilter filter) { if (filter == null) { return(query.Where(q => 1 == 0)); } if (filter.StudentId != null) { query = query.Where(q => q.ExamRegisters .Select(r => r.StudentId.Equals(filter.StudentId)) .Contains(true)); } if (filter.StudentNumber != null) { query = query.Where(q => q.ExamRegisters .Select(r => r.Student.StudentNumber == filter.StudentNumber) .Contains(true)); } if (filter.ExamProgramId != null) { query = query.Where(q => q.ExamPeriod.ExamProgramId, filter.ExamProgramId); } if (filter.ExamProgramName != null) { query = query.Where(q => q.ExamPeriod.ExamProgram.Name, filter.ExamProgramName); } if (filter.ExamPeriodId != null) { query = query.Where(q => q.ExamPeriodId, filter.ExamPeriodId); } if (filter.ExamRoomId != null) { query = query.Where(q => q.ExamRoomId, filter.ExamRoomId); } if (filter.TermId != null) { query = query.Where(q => q.ExamPeriod.TermId, filter.TermId); } return(query); }