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();
                            }
                        }
                    }
                }
            }
        }
Exemplo n.º 2
0
        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));
        }