Working query filter for co2s

This commit is contained in:
2020-07-03 09:42:44 -04:00
parent a9a024d35e
commit d107cc8e8b
2 changed files with 38 additions and 18 deletions
+10 -7
View File
@@ -72,18 +72,21 @@ namespace LeafWeb.WebCms.Utility
lid.Site.Longitude <= longitude + range) lid.Site.Longitude <= longitude + range)
select li; select li;
} }
// co2s
if (!string.IsNullOrEmpty(query.co2s)) if (!string.IsNullOrEmpty(query.co2s))
{ {
var co2s = double.Parse(query.co2s); var p = double.Parse(query.co2s);
resultItems = resultItems =
from li in resultItems from li in resultItems
where co2s >= where
li.LeafInputData.Max(lid => // maximum range inside LeafInputFiles
lid.Data.Max(d => d.CO2S) - li.LeafInputData.Max(lid =>
lid.Data.Min(d => d.CO2S) // range of LeafInputData
) lid.Data.Max(d => d.CO2S)
- lid.Data.Min(d => d.CO2S))
>= p
select li; select li;
} }
@@ -11,17 +11,34 @@
@RendDistinctValues("Latitude [&deg;]", Model.Select(m => m.Site.Latitude?.ToString())) @RendDistinctValues("Latitude [&deg;]", Model.Select(m => m.Site.Latitude?.ToString()))
@RendDistinctValues("Longitude [&deg;]", Model.Select(m => m.Site.Longitude?.ToString())) @RendDistinctValues("Longitude [&deg;]", Model.Select(m => m.Site.Longitude?.ToString()))
@RendDistinctValues("Elevation [m]", Model.Select(m => m.Site.Elevation?.ToString())) @RendDistinctValues("Elevation [m]", Model.Select(m => m.Site.Elevation?.ToString()))
@RendDistinctValues("CO2S", @RendDistinctValues("CO2S",
Model.Select(m => Model.Select(m =>
m.SiteName + ": " m.SiteName + " (" + m.Id + "): " +
+ string.Join(", ", string.Join(", ",
m.Data?.Select(d => d.CO2S?.ToString()) m.Data?.Select(d => d.CO2S?.ToString())
) )
)
), "<br />"
) )
@RendDistinctValues("CO2S Min", Model.Select(m => m.Data?.Min(d => d.CO2S).ToString())) @RendDistinctValues("CO2S Min", Model.Select(m =>
@RendDistinctValues("CO2S Average", Model.Select(m => m.Data?.Average(d => d.CO2S).ToString())) m.SiteName + " (" + m.Id + "): " +
@RendDistinctValues("CO2S Max", Model.Select(m => m.Data?.Max(d => d.CO2S).ToString())) m.Data?.Min(d => d.CO2S).ToString()), "<br />")
@RendDistinctValues("CO2S Average", Model.Select(m =>
m.SiteName + " (" + m.Id + "): " +
m.Data?.Average(d => d.CO2S).ToString()), "<br />")
@RendDistinctValues("CO2S Max", Model.Select(m =>
m.SiteName + " (" + m.Id + "): " +
m.Data?.Max(d => d.CO2S).ToString()), "<br />")
@RendDistinctValues("CO2S Range", Model.Select(m =>
m.SiteName + " (" + m.Id + "): " +
(m.Data?.Max(d => d.CO2S)
- m.Data?.Min(d => d.CO2S))), "<br />")
@RendValue("CO2S Max Range", Model.Max(m =>
m.Data?.Max(d => d.CO2S)
- m.Data?.Min(d => d.CO2S))?.ToString())
@RendValue("CO2S Min Range", Model.Min(m =>
m.Data?.Max(d => d.CO2S)
- m.Data?.Min(d => d.CO2S))?.ToString())
@helper RendValue(string label, string value) @helper RendValue(string label, string value)
@@ -31,13 +48,13 @@
@Html.Raw(label) @Html.Raw(label)
</div> </div>
<div class="col-sm-9 border-bottom pl-5 pl-sm-2"> <div class="col-sm-9 border-bottom pl-5 pl-sm-2">
@value @Html.Raw(@value)
</div> </div>
</div> </div>
} }
@helper RendDistinctValues(string label, IEnumerable<string> values) @helper RendDistinctValues(string label, IEnumerable<string> values, string seperator = ", ")
{ {
var value = string.Join(", ", values.Distinct()); var value = string.Join(seperator, values.Distinct());
@RendValue(label, value) @RendValue(label, value)
} }