public ActionResult ReportCards(ReportCardsInputModel inputModel) { //var path = Server.MapPath(ApplicationPath).Replace("/", "\\"); //inputModel.DefaultDataPath = path; inputModel.ContentUrl = CompilerHelper.ScriptsRoot; SchoolLocator.ReportService.ScheduleReportCardTask(inputModel); return(Json(true)); // return DemoReportCards(inputModel); }
public void ScheduleReportCardTask(ReportCardsInputModel inputModel) { Trace.Assert(Context.DistrictId.HasValue); if (!ServiceLocator.ServiceLocatorMaster.DistrictService.IsReportCardsEnabled()) { throw new ChalkableSecurityException("This district hasn't access Report Cards!"); } var data = new ReportProcessingTaskData(Context, inputModel, inputModel.ContentUrl); var scheduleTime = DateTime.UtcNow.AddDays(-20); ServiceLocator.ServiceLocatorMaster.BackgroundTaskService.ScheduleTask(BackgroundTaskTypeEnum.GenerateReport, scheduleTime, Context.DistrictId, data.ToString(), $"{Context.DistrictId.Value}_report_processing"); }
public void GenerateReportCard(ReportCardsInputModel inputModel) { Trace.Assert(Context.PersonId.HasValue); Trace.Assert(Context.DistrictId.HasValue); try { var content = ServiceLocator.ReportService.GenerateReport(inputModel); var reportId = $"reportcard_{Context.DistrictId.Value}_{Context.PersonId.Value}_{Guid.NewGuid()}"; ServiceLocator.StorageBlobService.AddBlob("reports", reportId, content); ServiceLocator.NotificationService.AddReportProcessedNotification(Context.PersonId.Value, Context.RoleId, "Report Cards", reportId, null, true); } catch (Exception e) { ServiceLocator.NotificationService.AddReportProcessedNotification(Context.PersonId.Value, Context.RoleId, "Report Cards", null, "We had an issue building your report. Please try again.", false); throw e; } }
private ActionResult DemoReportCards(ReportCardsInputModel inputModel) { var path = Server.MapPath(ApplicationPath).Replace("/", "\\"); inputModel.DefaultDataPath = path; IList <string> htmls = new List <string>(); //string header = LoadDemoView(Path.Combine(path, "Header2016-09-30--13-21-26.html")); //string footer = LoadDemoView(Path.Combine(path, "Footer2016-09-30--13-21-26.html")); string header = LoadDemoView(Path.Combine(path, "DemoReportHeader.html")); string footer = LoadDemoView(Path.Combine(path, "DemoReportFooter.html")); for (int i = 0; i < 1; i++) { //htmls.Add(LoadDemoView(Path.Combine(path, "2016-09-30--13-21-26.html"))); htmls.Add(LoadDemoView(Path.Combine(path, "DemoReportViewNew.html"))); } return(Report(() => DocumentRenderer.RenderToPdf(path, Settings.ScriptsRoot, htmls, header, footer), "Report Cards", ReportingFormat.Pdf, DownloadReportFile)); }