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