Skip to content

Commit e90fb29

Browse files
committed
Fix bug where summary values blow up for sub-property expressions
1 parent 5a8b605 commit e90fb29

File tree

3 files changed

+13
-4
lines changed

3 files changed

+13
-4
lines changed

Build/CommonAssemblyInfo.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,6 @@
1515
//
1616
// You can specify all the values or you can default the Revision and Build Numbers
1717
// by using the '*' as shown below:
18-
[assembly: AssemblyVersion("3.2.6")]
19-
[assembly: AssemblyFileVersion("3.2.6")]
18+
[assembly: AssemblyVersion("3.2.7")]
19+
[assembly: AssemblyFileVersion("3.2.7")]
2020
//[assembly: AssemblyInformationalVersion("2.5-filters")]

Griddly.Mvc/GriddlyExtensions.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,11 @@ static void PopulateSummaryValue<T>(IEnumerable<T> data, GriddlyColumn c)
7272
case SummaryAggregateFunction.Max:
7373
try
7474
{
75-
c.SummaryValue = data.AsQueryable().Aggregate(c.SummaryFunction.Value.ToString(), c.ExpressionString);
75+
IQueryable q = data.AsQueryable();
76+
if (c.ExpressionString.Contains("."))
77+
q = q.Select(c.ExpressionString.Substring(0, c.ExpressionString.LastIndexOf('.')));
78+
79+
c.SummaryValue = q.Aggregate(c.SummaryFunction.Value.ToString(), c.ExpressionString.Split(new[] { '.' }).Last());
7680
}
7781
catch (Exception ex) when (ex.InnerException is ArgumentNullException)
7882
{

Griddly.Mvc/Results/QueryableResult.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,12 @@ internal void PopulateSummaryValue(GriddlyColumn c)
9494
case SummaryAggregateFunction.Max:
9595
try
9696
{
97-
c.SummaryValue = _result.Aggregate(c.SummaryFunction.Value.ToString(), c.ExpressionString);
97+
98+
IQueryable q = _result;
99+
if (c.ExpressionString.Contains("."))
100+
q = q.Select(c.ExpressionString.Substring(0, c.ExpressionString.LastIndexOf('.')));
101+
102+
c.SummaryValue = q.Aggregate(c.SummaryFunction.Value.ToString(), c.ExpressionString.Split(new[] { '.' }).Last());
98103
}
99104
catch (Exception ex) when (ex.InnerException is ArgumentNullException)
100105
{

0 commit comments

Comments
 (0)