예제 #1
0
        public void Test1()
        {
            var dc = new DataContext();

            dc.AddTable("data", new[] {
                new Item {
                    Col1 = "A", Col2 = 2
                }
            });

            var flow = new Flow {
                Orientation = FlowOrientation.Vertical
            };

            flow.AddTable <Item>("data");

            var          rep = Report.CreateReport(flow, dc);
            StringWriter sw  = new StringWriter();

            TextReportWriter.WriteTo(rep, sw);

            var lines = sw.ToString().Split('\n').Select(a => a.TrimEnd('\r')).ToArray();

            Assert.AreEqual(lines[1], "=========");
            Assert.AreEqual(lines[2], "Col1 Col2");
            Assert.AreEqual(lines[3], "---- ----");
            Assert.AreEqual(lines[4], "A       2");
            Assert.AreEqual(lines[5], "---------");
        }
예제 #2
0
        public static String RenderTextReport(Report rep)
        {
            StringWriter sw = new StringWriter();

            TextReportWriter.WriteTo(rep, sw);
            return(sw.ToString());
        }
        private bool StaticAnalyzerProcessor(string extractedFilePath, string dataPath)
        {
            string fxCopOutputFilePath   = dataPath + "AnalyzerTools\\FxCopReport.xml";
            string fxCopExePath          = dataPath + "AnalyzerTools\\Microsoft_Fxcop_10.0\\FxCopCmd.exe";
            string fxCopRulesFilePath    = dataPath + "AnalyzerTools\\Microsoft_Fxcop_10.0\\common_fx_cop_file.FxCop";
            string analyzerOutputFile    = _outputReportPath;
            string nDependOutputFilePath = dataPath + "AnalyzerTools\\NDependOutput";
            string nDependExePath        = dataPath + "AnalyzerTools\\NDepend_2019.2.7.9280\\NDepend.Console.exe";
            string nDependRulesFilePath  = dataPath + "AnalyzerTools\\NDepend_2019.2.7.9280\\common.ndproj";


            List <AnalyzersDataModel> analyzersDataModelsList = new List <AnalyzersDataModel>
            {
                new AnalyzersDataModel
                {
                    Name           = "FxCop",
                    ExePath        = fxCopExePath,
                    OutputFilePath = fxCopOutputFilePath,
                    RuleFilePath   = fxCopRulesFilePath
                },
                new AnalyzersDataModel {
                    Name           = "NDepend",
                    ExePath        = nDependExePath,
                    OutputFilePath = nDependOutputFilePath,
                    RuleFilePath   = nDependRulesFilePath
                }
            };


            IStaticAnalyzers fxCopAnalyzer = new FxCopAnalyzer(extractedFilePath, new StaticAnalyzerUtilities(new ConsoleLogger()));

            IStaticAnalyzers nDependAnalyzer = new NDependAnalyzer(extractedFilePath, new StaticAnalyzerUtilities(new ConsoleLogger()));
            IReader          fxCopReader     = new FxCopReader(new ConsoleLogger());
            IReader          nDependReader   = new NDependReader(new ConsoleLogger());
            IReportWriter    textWriter      = new TextReportWriter(analyzerOutputFile);

            #region  Analyzers and Readers List

            List <IStaticAnalyzers> analyzers = new List <IStaticAnalyzers>();
            List <IReader>          readers   = new List <IReader>();
            analyzers.Add(fxCopAnalyzer);
            analyzers.Add(nDependAnalyzer);
            readers.Add(fxCopReader);
            readers.Add(nDependReader);

            #endregion

            #region Calling the processmanger

            var  manager       = new StaticToolsProcessor(analyzersDataModelsList, analyzers, readers, textWriter);
            bool successStatus = manager.Process();

            #endregion
            return(successStatus);
        }
 /// <summary>
 /// Creates a text report for the plot.
 /// </summary>
 /// <returns>
 /// The create text report.
 /// </returns>
 public string CreateTextReport()
 {
     using (var ms = new MemoryStream())
     {
         var    trw    = new TextReportWriter(ms);
         Report report = this.CreateReport();
         report.Write(trw);
         trw.Flush();
         ms.Position = 0;
         var r = new StreamReader(ms);
         return(r.ReadToEnd());
     }
 }
        public void TryWithTwoColumnsAndSomeDividers()
        {
            var writer = new TextReportWriter(2);

            writer.AddDivider('=');
            writer.AddText("Name", "City");
            writer.AddDivider('=');
            writer.AddText("Jeremy", "Austin");
            writer.AddText("Jessica", "Little Rock");
            writer.AddText("Natalie", "Bentonville");
            writer.AddDivider('-');
            writer.AddText("Monte", "Joplin");
            writer.AddText("aaaaaaaaaaaaaaaaaaaaaaaaaa", "Joplin");
            writer.AddText("aaaaaaaaaaa", "Joplin adsf asdf asdf asdf");
            writer.AddDivider('=');

            writer.DumpToConsole();
        }
예제 #6
0
        private string writeTextTable(Func <BehaviorChain, string> ordering, params IColumn[] columns)
        {
            var chains = _graph.Behaviors.OrderBy(ordering);

            var writer = new TextReportWriter(columns.Count());

            writer.AddText(columns.Select(x => x.Header()).ToArray());
            writer.AddDivider('=');

            chains.Each(chain =>
            {
                string[] data = columns.Select(x => x.Text(chain)).ToArray();
                writer.AddText(data);
                writer.AddDivider('-');
            });

            return(writer.Write());
        }
        public void Given_OutputFilePath_WhenWriteIsInvokedAndFileIsCreated_ThenSuccessIsExpected()
        {
            var           outputTestFilePath = Directory.GetCurrentDirectory() + "\\UnitTestOutput.txt";
            IReportWriter reportWriterRef    = new TextReportWriter(outputTestFilePath);

            List <DataModel> dataModels = new List <DataModel>
            {
                new DataModel
                {
                    ErrorCount         = "",
                    ErrorMsg           = "",
                    ErrorCertainty     = "",
                    ErrorType          = "",
                    FileName           = "",
                    StaticAnalyzerTool = "",
                    LineNumber         = "",
                    FilePath           = "",
                    TimeStamp          = DateTime.Now
                }
            };

            Assert.IsTrue(reportWriterRef.Write(dataModels));
            File.Delete(outputTestFilePath);
        }
        public void SaveReport(string fileName)
        {
            string ext = Path.GetExtension(fileName);

            if (ext == null)
            {
                return;
            }

            ext = ext.ToLower();

            var r           = this.CreateReport(fileName);
            var reportStyle = new ReportStyle();

            switch (ext)
            {
            case ".txt":
                using (var s = File.Create(fileName))
                {
                    using (var w = new TextReportWriter(s))
                    {
                        r.Write(w);
                    }
                }

                break;

            case ".html":
                using (var s = File.Create(fileName))
                {
                    using (var w = new HtmlReportWriter(s))
                    {
                        w.WriteReport(r, reportStyle);
                    }
                }

                break;

            case ".pdf":
                using (var w = new PdfReportWriter(fileName))
                {
                    w.WriteReport(r, reportStyle);
                }

                break;

            case ".rtf":
                using (var w = new RtfReportWriter(fileName))
                {
                    w.WriteReport(r, reportStyle);
                }

                break;

            case ".tex":
                using (var s = File.Create(fileName))
                {
                    using (var w = new LatexReportWriter(s, "Example report", "oxyplot"))
                    {
                        w.WriteReport(r, reportStyle);
                    }
                }

                break;

            case ".xps":
                using (var w = new FlowDocumentReportWriter())
                {
                    w.WriteReport(r, reportStyle);
                    w.Save(fileName);
                }

                break;

            case ".docx":
                using (var w = new WordDocumentReportWriter(fileName))
                {
                    w.WriteReport(r, reportStyle);
                    w.Save();
                }

                break;
            }
        }
예제 #9
0
        void RenderReport(HttpContext context)
        {
            var type = context.Request.QueryString["type"];

            Report report;

            switch (type)
            {
            case "GdpByYear":
                report = Reports.GdpByYearReport.Generate();
                break;

            case "GdpByCountry":
                report = Reports.GdpByCountryReport.Generate();
                break;

            case "BiggestCountries":
                report = Reports.GdpYearColumnReport.BiggestCountries();
                break;

            case "FastestGrowingCountries":
                report = Reports.GdpYearColumnReport.FastestGrowingCountries();
                break;

            case "BestCountries":
                report = Reports.GdpYearColumnReport.BestCountries();
                break;

            default:
                throw new InvalidOperationException("Invalid report type.");
            }


            try
            {
                switch (context.Request.QueryString["format"])
                {
                case "pdf":
                    var url = context.Request.Url.ToString().Replace("format=pdf", "print=1");
                    PdfConvert.ConvertHtmlToPdf(new PdfDocument {
                        Url = url
                    }, new PdfOutput {
                        OutputStream = context.Response.OutputStream
                    });
                    context.Response.SetFileDownloadHeaders(String.Format("Report{0}.pdf", DateTime.Now.Ticks));
                    break;

                case "text":
                    context.Response.SetFileDownloadHeaders(String.Format("Report{0}.txt", DateTime.Now.Ticks));
                    TextReportWriter.WriteTo(report, context.Response.Output);
                    break;

                case "xlsx":
                    context.Response.SetFileDownloadHeaders(String.Format("Report{0}.xlsx", DateTime.Now.Ticks));
                    XlsxReportWriter.WriteToStream(report, Themes.Default, context.Response.OutputStream);
                    break;

                default:
                    var output     = new HtmlTextWriter(context.Response.Output);
                    var htmlWriter = new HtmlReportWriter(output);
                    htmlWriter.RegisterCss(DextopUtil.AbsolutePath("client/css/report.css"));
                    if (context.Request.QueryString["print"] == null)
                    {
                        htmlWriter.RegisterCss(DextopUtil.AbsolutePath("client/css/report-preview.css"));
                    }
                    htmlWriter.Write(report, new DefaultHtmlReportTheme());
                    break;
                }
            }
            catch (Exception ex)
            {
                context.Response.Write(ex.ToString());
            }
        }