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)); }
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)); }