public ActionResult ViewGeneratedExamination(string examGroup) { List <ExaminationViewModel> exams = examinationService.GetExamByExamGroup(examGroup); TempData["active"] = "Examination"; return(View(exams)); }
//[Feature(FeatureType.Page, "Export Group Examination ", "QBCS", protectType: ProtectType.Authorized)] public FileResult ExportGroupExamination(string examGroup, string fileExtension) { string zipFileName = null; List <ExaminationViewModel> exams = examinationService.GetExamByExamGroup(examGroup); //the output bytes of the zip file byte[] fileBytes = null; //create working memory stream of zip file using (MemoryStream memoryStream = new MemoryStream()) { //create a zip file using (ZipArchive zip = new ZipArchive(memoryStream, ZipArchiveMode.Create, true)) { //file xml if (fileExtension.ToLower().Equals("xml")) { foreach (var exam in exams) { string fileName = exam.Course.Code + "_" + exam.ExamGroup + "_" + exam.ExamCode + "_" + DateTime.Now.ToString("yyyyMMdd"); List <QuestionInExamViewModel> questions = new List <QuestionInExamViewModel>(); foreach (var part in exam.PartOfExam) { questions = questions.Concat(part.Question).ToList(); } if (zipFileName == null) { zipFileName = exam.Course.Code + "_" + exam.ExamGroup + "_" + DateTime.Now.ToString("yyyyMMdd") + "_XML"; } //add item to zip ZipArchiveEntry zipItem = zip.CreateEntry(fileName + ".xml"); //stream for item byte[] itemBytes = ExportToXMLFile(questions); using (Stream entryStream = zipItem.Open()) { Stream itemStream = new MemoryStream(itemBytes); itemStream.CopyTo(entryStream); } } // file GIFT } else { foreach (var exam in exams) { string fileName = exam.Course.Code + "_" + exam.ExamGroup + "_" + exam.ExamCode + "_" + DateTime.Now.ToString("yyyyMMdd"); List <QuestionInExamViewModel> questions = new List <QuestionInExamViewModel>(); foreach (var part in exam.PartOfExam) { questions = questions.Concat(part.Question).ToList(); } if (zipFileName == null) { zipFileName = exam.Course.Code + "_" + exam.ExamGroup + "_" + DateTime.Now.ToString("yyyyMMdd") + "_GIFT"; } //add item to zip ZipArchiveEntry zipItem = zip.CreateEntry(fileName + ".txt"); //stream for item byte[] itemBytes = ExportToGIFTFile(questions); using (Stream entryStream = zipItem.Open()) { Stream itemStream = new MemoryStream(itemBytes); itemStream.CopyTo(entryStream); } } } } fileBytes = memoryStream.ToArray(); } return(File(fileBytes, System.Net.Mime.MediaTypeNames.Application.Octet, zipFileName + ".zip")); }