Leaf Charter integration

This commit is contained in:
2016-03-10 11:18:25 -05:00
parent 72caa74bb2
commit c761952a8a
7 changed files with 44 additions and 25 deletions
+4
View File
@@ -12,6 +12,10 @@ namespace LeafWeb.Core.Parsers
{
}
public CntrlComparisonParser(byte[] fileContents) : base(fileContents)
{
}
public CntrlComparison[] Parse()
{
var fittingTitles = GetNextCsvRowValues();
+13
View File
@@ -2,12 +2,14 @@ using System;
using System.IO;
using CsvHelper;
using CsvHelper.Configuration;
using LeafWeb.Core.Utility;
namespace LeafWeb.Core.Parsers
{
public class CsvParserBase : IDisposable
{
private readonly StreamReader _reader;
private readonly MemoryStream _memoryStream;
protected readonly CsvReader CsvReader;
protected CsvParserBase(FileSystemInfo csvFile)
@@ -17,6 +19,15 @@ namespace LeafWeb.Core.Parsers
CsvReader = new CsvReader(_reader, csvConfiguration);
}
protected CsvParserBase(byte[] fileContents)
{
_memoryStream = new MemoryStream(fileContents);
_reader = new StreamReader(_memoryStream);
var csvConfiguration = new CsvConfiguration { HasHeaderRecord = false, IgnoreBlankLines = false, IgnoreReadingExceptions = true };
CsvReader = new CsvReader(_reader, csvConfiguration);
}
internal static StreamReader OpenCsv(FileSystemInfo csvFile)
{
if (!csvFile.Exists)
@@ -37,6 +48,8 @@ namespace LeafWeb.Core.Parsers
public void Dispose()
{
_reader.Dispose();
if (_memoryStream != null)
_memoryStream.Dispose();
}
}
}
+4 -4
View File
@@ -10,11 +10,11 @@ namespace LeafWeb.Web.Charter
{
public static class LeafWebCharter
{
private static readonly Font TitleFont = new Font("Times New Roman", 10, FontStyle.Bold);
private static readonly Font AxisFont = new Font("Times New Roman", 10, FontStyle.Bold);
private static readonly Font TitleFont = new Font(new FontFamily("Times New Roman"), 10, FontStyle.Bold);
private static readonly Font AxisFont = new Font(new FontFamily("Times New Roman"), 10, FontStyle.Bold);
private static readonly Font Font = new Font(new FontFamily("Trebuchet MS"), 9, FontStyle.Bold);
private const int ChartWidth = 550;
private const int ChartHeight = 400;
public const int ChartWidth = 550;
public const int ChartHeight = 400;
// cntrlcomparison
public static IEnumerable<Chart> ProduceCharts(CurveData curve)
+11 -8
View File
@@ -12,19 +12,22 @@ using LeafWeb.Web.Charter;
namespace LeafWeb.Web.Controllers
{
public class LeafCharterController : Controller
{
public ActionResult Index()
public class LeafCharterController : ControllerBase
{
public ActionResult Index(int leafInputFileId)
{
return View();
return View(leafInputFileId);
}
public ActionResult LeafCharts(int number)
public ActionResult LeafCharts(int leafInputFileId, int number)
{
var fileInfo = new FileInfo(@"C:\Users\poprhythm\Documents\code\LeafWeb\Core.Tests\Parsers\LeafOutputData\cntrlcomparison_Wild Capsicum.csv");
var leafInputFile = DataService.GetLeafInputFile(leafInputFileId);
var leafOutputFile = leafInputFile.LeafOutputFiles.FirstOrDefault(f => f.Filename.StartsWith("cntrlcomparison"));
//if (leafOutputFile == null)
// return View(); // TODO: break
CntrlComparison[] cntrlComparison;
using (var parser = new CntrlComparisonParser(fileInfo))
CntrlComparison[] cntrlComparison;
using (var parser = new CntrlComparisonParser(leafOutputFile.Contents))
cntrlComparison = parser.Parse();
var curveData = CurveDataConverter.Convert(cntrlComparison).ToArray();
+7 -8
View File
@@ -1,8 +1,7 @@
<img src="@Url.Action("LeafCharts", new {number=0})" alt="image" />
<img src="@Url.Action("LeafCharts", new {number=1})" alt="image" />
<img src="@Url.Action("LeafCharts", new {number=2})" alt="image" />
<img src="@Url.Action("LeafCharts", new {number=3})" alt="image" />
<img src="@Url.Action("LeafCharts", new {number=4})" alt="image" />
<img src="@Url.Action("LeafCharts", new {number=5})" alt="image" />
<img src="@Url.Action("LeafCharts", new {number=6})" alt="image" />
<img src="@Url.Action("LeafCharts", new {number=7})" alt="image" />
@using LeafWeb.Web.Charter
@model int
@for (int i = 0; i < 8; i++)
{
<img src="@Url.Action("LeafCharts", new {leafInputFileId = Model, number=@i})" alt="image" height="@LeafWebCharter.ChartHeight" width="@LeafWebCharter.ChartWidth" />
}
+3 -2
View File
@@ -5,7 +5,7 @@
var grid = new WebGrid(Model, rowsPerPage: 45);
}
<h1>Results</h1>
<h1>Result Status</h1>
@grid.GetHtml(columns:
grid.Columns(
@@ -13,7 +13,8 @@
grid.Column("LeafInputSiteId", "Site Id"),
grid.Column("LeafInputFilename", "Filename"),
grid.Column("LeafInputName", "Submitted By"),
grid.Column("CurrentStatus", "Status")
grid.Column("CurrentStatus", "Status"),
grid.Column("Chart", "Chart", item => @Html.ActionLink("Chart", "Index", "LeafCharter", new { leafInputFileId = item.LeafInputFileId}, new {}))
),
htmlAttributes: new { @class = "table table-striped table-bordered table-hover table-condensed" }
)
+2 -3
View File
@@ -30,9 +30,8 @@
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Leaf Data <span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a href="/LeafInput">Leaf Input</a></li>
<li><a href="/LeafOutput">Leaf Output</a></li>
<li><a href="/LeafCharter">Leaf Charts</a></li>
<li><a href="/LeafInput">Submit Data</a></li>
<li><a href="/LeafOutput">Result Status</a></li>
</ul>
</li>
<li>