Skip to content

Commit fecc860

Browse files
committed
Populate summary values for simplegriddly
1 parent eb476f9 commit fecc860

File tree

3 files changed

+27
-3
lines changed

3 files changed

+27
-3
lines changed

Build/CommonAssemblyInfo.cs

+2-2
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("1.8.0")]
19-
[assembly: AssemblyFileVersion("1.8.0")]
18+
[assembly: AssemblyVersion("1.8.1")]
19+
[assembly: AssemblyFileVersion("1.8.1")]
2020
//[assembly: AssemblyInformationalVersion("1.4.5-editlyalpha2")]

Griddly.Mvc/GriddlyExtensions.cs

+24-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
using System;
1+
using Griddly.Mvc.Linq.Dynamic;
2+
using System;
23
using System.Collections;
34
using System.Collections.Generic;
45
using System.Linq;
@@ -52,9 +53,31 @@ public static MvcHtmlString Griddly(this HtmlHelper htmlHelper, GriddlySettings
5253

5354
public static MvcHtmlString SimpleGriddly<T>(this HtmlHelper htmlHelper, GriddlySettings<T> settings, IEnumerable<T> data)
5455
{
56+
// TODO: figure out how to get this in one query
57+
foreach (GriddlyColumn c in settings.Columns.Where(x => x.SummaryFunction != null))
58+
PopulateSummaryValue(data, c);
59+
5560
return htmlHelper.Griddly(new GriddlyResultPage<T>(data), settings, true);
5661
}
5762

63+
static void PopulateSummaryValue<T>(IEnumerable<T> data, GriddlyColumn c)
64+
{
65+
// NOTE: Also in QueryableResult.PopulateSummaryValue
66+
switch (c.SummaryFunction.Value)
67+
{
68+
case SummaryAggregateFunction.Sum:
69+
case SummaryAggregateFunction.Average:
70+
case SummaryAggregateFunction.Min:
71+
case SummaryAggregateFunction.Max:
72+
c.SummaryValue = data.AsQueryable().Aggregate(c.SummaryFunction.Value.ToString(), c.ExpressionString);
73+
74+
break;
75+
76+
default:
77+
throw new InvalidOperationException(string.Format("Unknown summary function {0} for column {1}.", c.SummaryFunction, c.ExpressionString));
78+
}
79+
}
80+
5881
public static MvcHtmlString Griddly(this HtmlHelper htmlHelper, GriddlyResultPage model, GriddlySettings settings, bool isSimpleGriddly = false)
5982
{
6083
if (htmlHelper.ViewData["_isGriddlySettingsRequest"] as bool? != true)

Griddly.Mvc/Results/QueryableResult.cs

+1
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ public override void PopulateSummaryValues(GriddlySettings<T> settings)
7878

7979
internal void PopulateSummaryValue(GriddlyColumn c)
8080
{
81+
// NOTE: Also in GriddlyExtensions.SimpleGriddly
8182
switch (c.SummaryFunction.Value)
8283
{
8384
case SummaryAggregateFunction.Sum:

0 commit comments

Comments
 (0)