Exemple #1
0
        public ActionResult Create(AdmitCardRequestCommand command)
        {
            if (ModelState.IsValid)
            {
                var s = db.StudentInfos.SingleOrDefault(c => c.IdNo == command.IdNo);
                if (s != null)
                {
                    if (!db.Payments.Any(c => c.StudentId == s.IdNo))
                    {
                        ViewBag.Message      = "Your Student Id Not In Payment Table";
                        ViewBag.MessageColor = "text-danger";
                        return(View(command));
                    }


                    var ar = db.AdmitCardRequests.Any(c => c.StudentInfoId == s.Id && !c.IsDone);
                    if (ar)
                    {
                        ViewBag.Message      = "You Already Have Pending Request";
                        ViewBag.MessageColor = "text-danger";
                        return(View(command));
                    }
                    var a = new AdmitCardRequest()
                    {
                        StudentInfoId = s.Id,
                        RequestedDate = DateTimeFormatter.StringToDate(command.RequestedDate),
                        Comment       = command.Comment
                    };

                    db.AdmitCardRequests.Add(a);
                    var r = db.SaveChanges();

                    if (r > 0)
                    {
                        ViewBag.Message      = "Successfully Submitted";
                        ViewBag.MessageColor = "text-success";
                        return(View());
                    }

                    ViewBag.Message      = "Submit Fail";
                    ViewBag.MessageColor = "text-danger";
                    return(View(command));
                }
                else
                {
                    ViewBag.Message      = "ID Not Found";
                    ViewBag.MessageColor = "text-warning";
                }
            }
            ViewBag.Message      = "Submit Valid Value";
            ViewBag.MessageColor = "text-warning";
            return(View(command));
        }
Exemple #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));
        }