Exemplo n.º 1
0
        public static FileInfo GetHtmlFormattedReport(string sessionId, bool condensed)
        {
            IDiskCacheGroup group     = GetReportCacheGroup(sessionId);
            string          directory = condensed ? "Condensed" : "Full";

            FileInfo htmlReportFile = group.GetFileInfo(Path.Combine(directory, HtmlReportFileName));

            if (!htmlReportFile.Exists)
            {
                Report report = LoadSerializedReport(sessionId);
                if (report == null)
                {
                    return(null);
                }

                group.CreateSubdirectory(directory);
                IReportManager            reportManager   = RuntimeAccessor.ServiceLocator.Resolve <IReportManager>();
                FileSystemReportContainer reportContainer = new FileSystemReportContainer(htmlReportFile.DirectoryName, ReportBaseName);
                IReportWriter             reportWriter    = reportManager.CreateReportWriter(report, reportContainer);
                var reportFormatterOptions = new ReportFormatterOptions();
                reportManager.Format(reportWriter, condensed ? "Html-Condensed" : "Html", reportFormatterOptions, NullProgressMonitor.CreateInstance());
            }

            return(htmlReportFile);
        }
Exemplo n.º 2
0
        public string ConvertSavedReport(string fileName, string format,
                                         IProgressMonitor progressMonitor)
        {
            using (progressMonitor.BeginTask("Converting saved report", 100))
            {
                var reportContainer = new FileSystemReportContainer(Path.GetDirectoryName(fileName),
                                                                    Path.GetFileNameWithoutExtension(fileName));

                var reportReader = reportManager.CreateReportReader(reportContainer);

                Report report;
                using (var subProgressMonitor = progressMonitor.CreateSubProgressMonitor(20))
                    report = reportReader.LoadReport(true, subProgressMonitor);

                var tempFilePath = SpecialPathPolicy.For <ReportService>().CreateTempDirectoryWithUniqueName().FullName;
                using (var subProgressMonitor = progressMonitor.CreateSubProgressMonitor(80))
                    return(SaveReportAs(report, tempFilePath, format, subProgressMonitor));
            }
        }
Exemplo n.º 3
0
        public string SaveReportAs(Report report, string fileName, string format, IProgressMonitor progressMonitor)
        {
            var file = string.Empty;

            using (progressMonitor.BeginTask("Generating report", 100))
            {
                var folderName      = Path.GetDirectoryName(fileName);
                var reportContainer = new FileSystemReportContainer(folderName,
                                                                    Path.GetFileNameWithoutExtension(fileName));
                var reportWriter = reportManager.CreateReportWriter(report, reportContainer);

                if (progressMonitor.IsCanceled)
                {
                    throw new OperationCanceledException();
                }

                // Delete the report if it already exists
                reportContainer.DeleteReport();

                if (progressMonitor.IsCanceled)
                {
                    throw new OperationCanceledException();
                }

                progressMonitor.Worked(10);

                // Format the report
                var reportFormatterOptions = new ReportFormatterOptions();
                using (var subProgressMonitor = progressMonitor.CreateSubProgressMonitor(90))
                    reportManager.Format(reportWriter, format, reportFormatterOptions, subProgressMonitor);

                if (progressMonitor.IsCanceled)
                {
                    throw new OperationCanceledException();
                }

                if (reportWriter.ReportDocumentPaths.Count > 0)
                {
                    file = Path.Combine(folderName, reportWriter.ReportDocumentPaths[0]);
                }
            }
            return(file);
        }
Exemplo n.º 4
0
        public void ConstructorTreatsEmptyDirectoryAsWorkingDirectory()
        {
            FileSystemReportContainer container = new FileSystemReportContainer("", "foo");

            Assert.AreEqual(Environment.CurrentDirectory + Path.DirectorySeparatorChar, container.ReportDirectory);
        }