protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { string searchText = string.Empty; string sector = string.Empty; if (Request.QueryString["searchText"] != null) { searchText = Request.QueryString["searchText"].ToString(); } using (var context = new ApplicationDbContext()) { if (searchText != "") { var db = new ApplicationDbContext(); var idNo = searchText; var s = db.StudentInfos.Include(c => c.Program) .SingleOrDefault(c => c.IdNo == idNo); if (s != null) { var approval = db.AdmitCardApprovals.Any(c => c.IsPaymentComplete && !c.IsDelete); if (approval) { var admit = new AdmitCardQuery() { Id = s.Id, IdNo = s.IdNo, Name = s.Name, Program = s.Program.Name + "(" + s.Program.ShortName + ")", //Exam = s.Exam.Name, //Semester = s.Semester.Name + " " + s.Semester.Year, ContactNo = s.ContactNo, Email = s.Email }; // Image and QR var image = @"D" + s.ImageFilePath; admit.StudentImage = File.ReadAllBytes(image); var encoder = new QRCodeEncoder { QRCodeScale = 3 }; var bmp = encoder.Encode(s.IdNo); admit.Qr = ImageToByte(bmp); var dataList = new List <AdmitCardQuery> { admit }; ReportViewer1.LocalReport.ReportPath = Server.MapPath("/Reports/AdmitCardReport.rdlc"); ReportViewer1.LocalReport.DataSources.Clear(); var rdc = new ReportDataSource("DataSet1", dataList); ReportViewer1.LocalReport.DataSources.Add(rdc); ReportViewer1.LocalReport.Refresh(); ReportViewer1.DataBind(); } } } } } }
public JsonResult AdmitDownload(AdmitCardRequestCommand vm) { CultureInfo cInfo = new CultureInfo("en-IN"); ReportViewer viewer = new ReportViewer(); var context = new ApplicationDbContext(); // data source var db = new ApplicationDbContext(); var idNo = vm.IdNo; var s = db.StudentInfos.Include(c => c.Program) .SingleOrDefault(c => c.IdNo == idNo && !c.IsDelete); if (s != null) { var payment = db.Payments.Include(c => c.Semester).Include(c => c.Exam).FirstOrDefault(c => !c.IsDelete && c.ProgramId == s.ProgramId && c.SemesterId == vm.SemesterId && c.ExamId == vm.ExamId && c.StudentId == s.IdNo); var approval = db.AdmitCardApprovals.Any(c => c.PaymentId == payment.Id && !c.IsPrevious && c.IsPaymentComplete && !c.IsDelete && c.StudentInfoId == s.Id); var isSpecial = db.AdmitCardApprovals.Any(c => c.PaymentId == payment.Id && !c.IsPrevious && c.IsSpecialPermission && !c.IsDelete && c.StudentInfoId == s.Id); var isPending = db.AdmitCardRequests.Any(c => !c.IsDone && c.StudentInfoId == s.Id); if (isPending) { return(Json("00", JsonRequestBehavior.AllowGet)); } var admit = new AdmitCardQuery(); if (approval) { string path = Path.Combine(Server.MapPath("~/Reports"), "AdmitCardReport.rdlc"); viewer.LocalReport.ReportPath = path; admit.Id = s.Id; admit.IdNo = s.IdNo; admit.Name = s.Name; admit.Program = s.Program.Name + "(" + s.Program.ShortName + ")"; if (payment != null) { admit.Exam = payment.Exam.Name; admit.Semester = payment.Semester.Name + " " + payment.Semester.Year; } else { admit.Exam = "-"; admit.Semester = "-"; } admit.ContactNo = s.ContactNo; admit.Email = s.Email; } if (isSpecial) { string path = Path.Combine(Server.MapPath("~/Reports"), "DueAdmitCardReport.rdlc"); viewer.LocalReport.ReportPath = path; var special = db.AdmitCardApprovals.Where(c => c.IsSpecialPermission && !c.IsDelete && c.StudentInfoId == s.Id).OrderByDescending(c => c.Id).FirstOrDefault(); admit.Id = s.Id; admit.IdNo = s.IdNo; admit.Name = s.Name; admit.Program = s.Program.Name + "(" + s.Program.ShortName + ")"; if (payment != null) { admit.Exam = payment.Exam.Name; admit.Semester = payment.Semester.Name + " " + payment.Semester.Year; } else { admit.Exam = "-"; admit.Semester = "-"; } admit.ContactNo = DateTimeFormatter.DateToString(special.ExceptedDate); admit.Email = s.Email; } // Image and QR if (!string.IsNullOrEmpty(s.ImageFilePath)) { var image = @"D" + s.ImageFilePath; admit.StudentImage = System.IO.File.ReadAllBytes(image); } else { admit.StudentImage = new byte[0]; } var encoder = new QRCodeEncoder { QRCodeScale = 3 }; var bmp = encoder.Encode(s.IdNo); admit.Qr = ImageToByte(bmp); var dataList = new List <AdmitCardQuery> { admit }; var rds = new ReportDataSource("DataSet1", dataList); viewer.LocalReport.DataSources.Add(rds); Warning[] warnings; string[] streamIds; string mimeType = string.Empty; string encoding = string.Empty; string extension = string.Empty; byte[] bytes = viewer.LocalReport.Render("PDF", null, out mimeType, out encoding, out extension, out streamIds, out warnings); string fileName = s.IdNo; string outputPath = "~/PdfReports/"; if (Directory.Exists(Server.MapPath(outputPath))) { var files = Directory.GetFiles(Server.MapPath(outputPath)); foreach (var f in files) { System.IO.File.Delete(f); } } else { Directory.CreateDirectory(Server.MapPath(outputPath)); } using (var stream = System.IO.File.Create(Path.Combine(Server.MapPath(outputPath), fileName + ".pdf"))) { stream.Write(bytes, 0, bytes.Length); } var pdfHref = "/PdfReports/" + fileName + ".pdf"; return(Json(pdfHref, JsonRequestBehavior.AllowGet)); } return(Json("0", JsonRequestBehavior.AllowGet)); }