Get chart file a bit quicker from DB

This commit is contained in:
2016-05-13 12:31:40 -04:00
parent 48e7578de7
commit 568211251b
3 changed files with 28 additions and 15 deletions
+17
View File
@@ -51,6 +51,23 @@ namespace LeafWeb.Core.DAL
return _db.LeafInputs.FirstOrDefault(li => li.Id == id);
}
public LeafOutputFile GetLeafOutput_ChartFile(int leafInputId)
{
return GetLeafOutput_FilenameLike(leafInputId, LeafOutputFile.Filename_LeafChart);
}
private LeafOutputFile GetLeafOutput_FilenameLike(int leafInputId, string filename)
{
var leafOutputChartFile =
from leafInput in _db.LeafInputs
where leafInput.Id == leafInputId
from leafOutput in leafInput.OutputFiles
where leafOutput.Filename.Contains(filename)
select leafOutput;
return leafOutputChartFile.FirstOrDefault();
}
public LeafInput GetLeafInput(string uniqueToken)
{
return _db.LeafInputs.FirstOrDefault(li => li.UniqueToken == uniqueToken);
+8 -4
View File
@@ -3,6 +3,11 @@ namespace LeafWeb.Core.Entities
{
public class LeafOutputFile
{
// convention for the filename which LeafCharter uses
public const string Filename_LeafChart = "leafgascomparison";
public const string Filename_ErrorMessage = "errormessage";
public const string Filename_WarningMessage = "warningmessage";
public int Id { get; set; }
public virtual LeafInput LeafInput { get; set; }
@@ -11,9 +16,8 @@ namespace LeafWeb.Core.Entities
public byte[] Contents { get; set; }
// convention for the filename which LeafCharter uses
public bool IsLeafChartFile => Filename?.Contains("leafgascomparison") ?? false;
public bool IsErrorMessage => Filename?.Contains("errormessage") ?? false;
public bool IsWarningMessage => Filename?.Contains("warningmessage") ?? false;
public bool IsLeafChartFile => Filename?.Contains(Filename_LeafChart) ?? false;
public bool IsErrorMessage => Filename?.Contains(Filename_ErrorMessage) ?? false;
public bool IsWarningMessage => Filename?.Contains(Filename_WarningMessage) ?? false;
}
}
+2 -10
View File
@@ -21,11 +21,7 @@ namespace LeafWeb.Web.Controllers
{
public ActionResult Index(int leafInputId)
{
var leafOutputFile =
DataService
.GetLeafInput(leafInputId)?
.OutputFiles?
.FirstOrDefault(f => f.IsLeafChartFile);
var leafOutputFile = DataService.GetLeafOutput_ChartFile(leafInputId);
if (leafOutputFile == null)
throw new ArgumentOutOfRangeException(); // TODO: break
@@ -53,11 +49,7 @@ namespace LeafWeb.Web.Controllers
public ActionResult ChartCurve(int leafInputId, string curveId)
{
var leafOutputFile =
DataService
.GetLeafInput(leafInputId)?
.OutputFiles?
.FirstOrDefault(f => f.IsLeafChartFile);
var leafOutputFile = DataService.GetLeafOutput_ChartFile(leafInputId);
if (leafOutputFile == null)
throw new ArgumentOutOfRangeException(); // TODO: break