Ejemplo n.º 1
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;
        }
Ejemplo n.º 2
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;
        }
 public void ConstructorTreatsEmptyDirectoryAsWorkingDirectory()
 {
     FileSystemReportContainer container = new FileSystemReportContainer("", "foo");
     Assert.AreEqual(Environment.CurrentDirectory + Path.DirectorySeparatorChar, container.ReportDirectory);
 }
Ejemplo n.º 4
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);
            }
        }